系统结构讲义-3
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11 12 13 14 15 4 6 4 7 2 4 5* 2 7* 4 4 4 4 5* 5* 5* 5* 7* 6 6 6* 2 2* 2* 7 替 H
失失失 H 失 替 替 H 替 替 替
替 替
块失效又发生块争用的时刻有: 、 、 、 、 、 (4)发生 )发生Cache块失效又发生块争用的时刻有:6、7、9、10、11、 块失效又发生块争用的时刻有 12、14、15。 、 、 。 的块命中率为3/15=0.2 (5) Cache的块命中率为 ) 的块命中率为
离现在最久的一页作为淘汰页; 离现在最久的一页作为淘汰页; 的一页作为淘汰页
5) 最优替换算法OPT ── 在比较范围内选取下一次使用时 最优替换算法OPT 在比较范围内选取下一次使用时
间离现在最久的一页作为淘汰页。 间离现在最久的一页作为淘汰页。 的一页作为淘汰页
实例: 实例:实存状况图
算法(其中*号表示被选中的淘汰页 号表示被选中的淘汰页): 例如 LRU 算法(其中 号表示被选中的淘汰页):
虚地址 0 3728 1023 1024 2055 7800 4096 6800 虚页号 页内地址 0 3 0 1 2 7 4 6 0 656 1023 0 7 632 0 656 装入位 1 0 1 1 0 0 1 1 实页号 页内地址 3 3 1 0 失效 1023 0 失效 失效 0 656 实地址 3072 无 4095 1024 无 无 2048 656
3) 最不经常使用算法LFU─在比较范围内选取最近单位时 最不经常使用算法LFU 在比较范围内选取 在比较范围内选取最近单位时
间内使用次数最少的一页作为淘汰页; 间内使用次数最少的一页作为淘汰页; 的一页作为淘汰页
4) 最不接近使用算法LRU在比较范围内选取最后一次使用 最不接近使用算法LRU在比较范围内选取最后一次使用
已访问次数 t 被访问虚页号 实存空间使用 0 情况(实页号 1 为 0、1、2) 2 操作名称 被访问实页号 0 无 空 空 空 初态(空) 1 1 1 空 空 调入 0 2 2 1 2 空 调入 1 3 1 1 2 空 命中 0 4 5 1 2* 5 调入 2 5 4 1* 4 5 替换 1 6 1 1 4 5* 命中 0 7 3 1 4* 3 替换 2 8 4 1* 4 3 命中 1 9 2 2 4 3* 替换 0 10 4 2 4 3* 命中 1 命中 总次数 4次
2 0
虚页号=[虚地址 页面大小 虚页号 虚地址/页面大小 虚地址 页面大小] 页内偏移量=虚地址 虚页号× 虚地址-虚页号 页内偏移量 Байду номын сангаас地址 虚页号×页面大小
堆栈型替换算法
这是对某些替换算法的统称。如果某些算法在同一地址流同一时刻的小 这是对某些替换算法的统称。如果某些算法在同一地址流同一时刻的小 容量分区情况下的保留页面集合必是大容量分区情况下的保留页面集合的子 情况下的保留页面集合必是大容量分区 容量分区情况下的保留页面集合必是大容量分区情况下的保留页面集合的子 当容量超过虚页总数时,保留页面集合相同) 集(当容量超过虚页总数时,保留页面集合相同),则小容量下的命中点到 大容量情况下仍然是命中点,并且随着容量加大, 大容量情况下仍然是命中点,并且随着容量加大,还可能会有新的命中点产 具有这一特性的一类替换算法中成为“堆栈型算法” 生。具有这一特性的一类替换算法中成为“堆栈型算法”。 例如, 算法, 例如,图3.32中,对LRU算法,如果实页数增加到 ,则t = 5时为了调入 中 算法 如果实页数增加到4, 时为了调入 虚页4就不必替换掉虚页 就不必替换掉虚页2,而是将虚页1、 、 、 都留在实存 都留在实存, 虚页 就不必替换掉虚页 , 而是将虚页 、 2、4、5都留在实存, 这时大容 量分区情况下的保留页面集合S2 = {1,2,4,5},同一时刻的小容量分区 量分区情况下的保留页面集合 , , , , ⊆ 情况下的保留页面集合S1 {1,4,5}。显然有S1是S2子集 子集。 情况下的保留页面集合S1 = {1,4,5}。显然有S1是S2子集。 P167第4~8行是堆栈型算法的数学定义。 第 ~ 行是堆栈型算法的数学定义 行是堆栈型算法的数学定义。 堆栈型替换算法的主要性质就是命中率 随着实页分区容量n的上升而单 命中率H随着实页分区容量 堆栈型替换算法的主要性质就是命中率 随着实页分区容量 的上升而单 调上升(不减性) 调上升(不减性)。 可以证明, 等算法都是堆栈型算法, 可以证明,LFU、LRU、OPT等算法都是堆栈型算法,而RAND和FIFO算 、 、 等算法都是堆栈型算法 和 算 法不是堆栈型算法。 的图3.34是一个实例,当实页数从 增加到 时, 是一个实例, 增加到4时 法不是堆栈型算法。 P168的图 的图 是一个实例 当实页数从3增加到 FIFO的命中率反倒从 降到 。具体观察,比如 = 7时,S1 = {1,2,5}, 的命中率反倒从3降到 的命中率反倒从 降到2。具体观察,比如t 时 , , , S2 = {2,3,4,5},不满足子集关系。所以 , , , ,不满足子集关系。所以FIFO不能保证当实页数增加时 不能保证当实页数增加时 原来的命中点不丢。 ,原来的命中点不丢。
几种常用的替换算法
1) 随机算法RAND─在比较范围内任取一页作为淘汰页; 随机算法RAND 在比较范围内任取一页作为淘汰页 在比较范围内任取一页作为淘汰页; 2) 先进先出算法FIFO─在比较范围内选取调入最早的一页 先进先出算法FIFO 在比较范围内选取调入最早的一页 在比较范围内选取调入最早
作为淘汰页; 作为淘汰页;
H=
(2)由于LFU算法为堆栈型替换算法,即随着分配给该程序的主存页面 由于LFU算法为堆栈型替换算法 算法为堆栈型替换算法, 数减少,其命中率单调递减,因此, 数减少,其命中率单调递减,因此,可采用逐渐减少所分配的主存页 数的方法进行推算:若分配N个页面时可获得最高命中率,但分配N 数的方法进行推算:若分配N个页面时可获得最高命中率,但分配N-1 个页面时命中率却减少,这时我们可以得出分配给N 个页面时命中率却减少,这时我们可以得出分配给N个主存页面才能 获得最高命中率的结论。 获得最高命中率的结论。
2 5 4 5
3 3 4 5 3
5 5 4* 5 3 2 中 5 5 2 5 3* 2 中
6 1 1 5 3* 2 换 6 1 2* 5 1 2 换
7 3 1 5 3 2* 中 7 3 3 5* 1 2* 换
8 2 1 5* 3 2 中 8 2 3 2 1* 2 换
9 3 1 5* 3 2 中 9 3 3 2 1* 2 中
实例:堆栈模拟图 实例:
研究堆栈型替换算法的性质, 研究堆栈型替换算法的性质,一方面可以设计优化的操 作系统算法(例如P167倒数第 行的 倒数第3行的 作系统算法(例如 倒数第 行的PFF法),另一方面也可 法),另一方面也可 推导出一些分析工具,例如“堆栈模拟法” 推导出一些分析工具,例如“堆栈模拟法”。 堆栈模拟图可以通过一次作图, 堆栈模拟图可以通过一次作图 , 描述同一地址流在各种 实存分区容量下的命中情况。 实存分区容量下的命中情况。
10 5 1* 5 3 2 中 10 5 3 2* 5 2 换
11 1 1 5 3 2* 中 11 1 3* 1 5 2* 换
12 3 1 5 3 2* 中 12 3 3 1 5* 2* 中
N=4
N=3
1024 × 12 — 5 H= ≈ .99959 0 1024 × 12
有一个Cache存储器,主存共有 个块(0~7), 存储器, 个块( ),Cache为4个块 题:有一个 存储器 主存共有8个块 ), 为 个块 ),采用组相联映像 (0~3),采用组相联映像,组内块数为 块,替换关系为 ),采用组相联映像,组内块数为2块 替换关系为LRU。 。 地址的各字段对应关系( (1)画出主存、Cache地址的各字段对应关系(标出位数)图 )画出主存、 地址的各字段对应关系 标出位数) (2)画出主存、Cache空间块的映像对应关系示意图 )画出主存、 空间块的映像对应关系示意图 (3)对于如下主存块地址流:1,2,4,1,3,7,0,1,2,5,4,6, )对于如下主存块地址流: , , , , , , , , , , , , 4,7,2,如主存中内容一开始未装入 , , ,如主存中内容一开始未装入Cache中,请列出 中 请列出Cache中各块 中各块 随时间使用状况 ),指出块失效又发生争用的时刻 (4)对于(3),指出块失效又发生争用的时刻 )对于( ), ),求出此期间 (5)对于(3),求出此期间 )对于( ),求出此期间Cache之命中率 之命中率 解: 主存地址 nd q s’ nmr ’ 直接 Cache地址 地址 相联 查找 0组 组 1组 组 主存 块号 块号Cache 块号
某虚拟存储器共有8个页面 每页为1024个字,实际主存为 个页面, 个字, 题:某虚拟存储器共有 个页面,每页为 个字 实际主存为4096个 个 采用页表法进行地址映像,映像表的内容如表1所示 字,采用页表法进行地址映像,映像表的内容如表 所示 (1)列出会发生页面失效的全部虚页号 ) (2)按以下虚地址:0,3278,1023,1024,2055,7800,4096, )按以下虚地址: , , , , , , , 6800,计算对应的主存实地址。 ,计算对应的主存实地址。 实页号 装入位 3 1 1 1 2 0 3 0 2 1 1 0 0 1 0 0 表1 :(1)发生页面失效的虚页分别为: , , , 解:( )发生页面失效的虚页分别为:2,3,5,7 (2)由虚地址计算主存实地址情况如下 )
N1+ N2
=
12
=
12
1 时间 页地址流 4 4
4 2 4* 5 LFU 3 命中7次 命中 次 2 进 进 进 进 1 2 3 4 时间 页地址流 4 5 3 2 4 4 4* 2 5 5 5* LFU 3 3 命中3次 命中 次 2 进 进 进 换 (3)访问存储单元的命中率为: 访问存储单元的命中率为:
0 1 2 3 0 1 2 3 4 5 6 7
0组 组 0区 区 1组 组 0组 组 1区 区 1组 组
q s nnr
组间直接, 组间直接,组内相联
时间t 主存块地址 Cache块0 Cache块1 Cache块2 Cache块3 命中情况
1 2 3 4 5 6 7 8 9 10 1 2 4 1 3 7 0 1 2 1 1 1* 1 1 1 1* 1 1 4 4* 4* 4* 0 0* 0* 2 2 2 2* 7 7 7 7* 3 3* 3* 3* 2 5 1* 5 7* 2
* * * *
* * *
* * *
*
* *
* * *
* * * *
命中 次数 0 2 5 6 7
一个程序由5个虚页组成 采用LFU替换算法,在程序执行过程中, 个虚页组成, 替换算法, 题:一个程序由 个虚页组成,采用 替换算法 在程序执行过程中, 依次访问的意味地址流如下: 依次访问的意味地址流如下: 4,5,3,2,5,1,3,2,3,5,1,3 , , , , , , , , , , , 1) 可能的最高页命中率是多少? 可能的最高页命中率是多少? 2) 至少要分配给该程序多少个页面才能获得最高的命中率。 至少要分配给该程序多少个页面才能获得最高的命中率。 3) 如果在程序执行过程中每访问一个页面,平均要对该页面内的存 如果在程序执行过程中每访问一个页面, 储单元1024次,求访问存储单元的命中率。 储单元 次 求访问存储单元的命中率。 解答: 解答: 由于在页地址流中互不相同的页共有5 (1)由于在页地址流中互不相同的页共有5页,因此可能的最高页命中率 为: N1 12—5 7
实例:堆栈模拟图 实例:
t P st(1) st(2) st(3) st(4) st(5) st(6) n=1 n=2 n=3 n=4 n=5 1 2 2 2 3 3 2 3 2 2 3 4 1 1 2 3 5 5 5 1 2 3 6 2 2 5 1 3 7 4 4 2 5 1 3 8 5 5 4 2 1 3 9 3 3 5 4 2 1 10 2 2 3 5 4 1 11 5 5 2 3 4 1 12 2 2 5 3 4 1