第4讲 存储体系.ppt

  1. 1、本文档共215页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 存储体系 4.1存储体系的概念 4.2虚拟存储器 4.3高速缓冲存储器 4.4Cache-主存-辅存三级层次 4.5主存保护 c)近期最少使用算法(Least Recently Used,LRU) 选择近期最少访问的页作为被替换的页。这种 算法能比较正确的反映程序的局部性,因为当前 最少使用的页一般来说未来也将很少访问,但完 全按此算法实现比较困难,需要为每个实页都配 置一个字长很长的计数器字段才行。所以一般采 用它的变形,即近期最久没被访问过的页作为被 替换的页。这样把“多”和“少”简化成“有”和“无” 之后,实现起来比较方便。 开始时所有页的使用位全为“0”,只要某个页的 任何单元被访问过,硬件就自动将该页使用位置 “1”。由于采用全相联映像,调入页可进入对应 于主存页面表中任何占用位为“0”的实页位置, 一旦装入主存某实页上,就置该实页的占用位为 “1”。只有当所有占用位都是1且又发生页面失效 时才有页面替换问题,这时就要用到使用位,只 需替换使用位为“0”的页即可。 显然,任何时候使用位都不能出现全“1”,否则,发生页面失效时无法判断该替换哪一页。 ?使用位全“1 ”处理 一种办法是由硬件强制全部使用位都为“0”。 从概念上看,近期最少使用的“期”是从上次使用 位全0到这次使用位全0的这段时间。由于这个期 的长短是随机的,所以称为随机期法。 另一种办法是它定期的置全部使用位为“0”。 由“未用过计数器”HS(或称为历史位),定期地每 隔Δt扫视使用位,对使用位为0的页,则加1Hs, 并让使用位继续为0;对使用位为1的页,则置 0Hs,同时置0使用位。扫描结束所有使用位为0, Hs大的就是最久未访问过的,作为替换页。 4)堆栈型替换算法 a)定义 A:长度为L的任意一个页面地址流 t: 已处理过t-1个页面的时间点 n:分配给该地址流的主存页面数 Bt(n):在t时间点、在n页的主存中的页面集合 Lt:到t时刻已遇到的地址流中相异页的页数 若 n Lt时, Bt(n+1) ? Bt(n) n= Lt时, Bt(n+1) = Bt(n) 成立,则此替换算法属于堆栈型的替换算法。 b)优点 ?命中率随主存页数的增加只可能提高,至少不会下降。 ?只需采用堆栈处理技术对地址流模拟处理一次,即可同时获得对此地址流在不同主存页数时的命中率,大大节省存贮体系设计的工作量。 ?对页地址流A在t时刻的At页是否命中,只需看St-1(主存在t-1时刻的堆栈)的前n项是否有At,若有则命中。 c)LRU算法 属于堆栈型算法,把刚访问过的页面至于栈顶,而把最久未被访问过的页面置于栈底。命中率随着分配给该道程序的主存页数n的增加而单调上升,至少不会下降,这是堆栈型算法具有的共同特点。 d)FIFO算法 非堆栈型算法,命中率总趋势是会随着主存页数n的增加而提高,但从某个局部来看,主存页数n的增加有时反倒可能降低其命中率。 5)页面失效频率法(PFF) 由于堆栈型替换算法具有随分配给该道程序的实 页数n的增加,命中率H会单调上升的特点,所以可 对LRU算法加以改进和发展:根据各道程序运行中 的主存页面失效率的高低,由OS来动态调节分配给 每道程序的实页数。当主存页面失效率超过某个限 值时就自动增加给该道程序的主存页数来提高其命 中率;而当主存页面失效率低于某个限值时就自动 减少分配给该道程序的主存页数,以便释放出这部 分主存页面位置给其它程序用,从而使整个系统总 的主存命中率和主存利用率得到提高。 3.虚拟存贮器工作的全过程 具体过程见下页图: 4.2.3页式虚拟存贮器实现中的问题 1.页面失效处理 1)原因 页面的划分只是机械的对程序空间和主存空间 进行等分,与程序的逻辑结构毫无关系。这样, 对于按字节编址的存贮器就有可能出现一条指令 横跨在两页上存贮的情况。同理,也会出现一个 操作数跨在两页上存贮。另外,采用间接寻址, 特别是多重间接寻址时,在寻址的过程中,可能 出现跨页、甚至连续跨多个页访问的情况。每当 当前一页已在主存而跨页存放的另一页不在主存 时,就会发生页面失效。 2)解决方法 由于页面失效可能出现于取指、取操作数、间接 寻址等过程中,即会在一条指令的分析或执行中发 生。通常的中断都是依靠在每条指令执行的末尾去 设置一个访中断微

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档