虚拟内存管理重点解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
所谓异常就是软件运行中发生了一些必须作出处理的事件,CPU自动产生一个陷入来打断当前运行,转入异常处理流程。 * * 散列页表 * 关联高速缓存TLB 实现虚拟内存引入时间开销 地址转换的时间开销 读取进程的页表、页面目录 一次访存变成两次、三次访存动作 CPU内部设置专门用来存放页表的缓存 放置最近经常用到的页表项 * 高速关联缓存 提高查找页表项的速度 以其中某一存储项内容作为地址来存取的存储器 也称TLB,Translation Lookaside Buffer(转换检测缓冲区) * 高速关联缓存 * 单元访问 访问虚拟地址单元的内容 按照页面的大小计算页号查询页表 检查该页表项中 “存在”标志位 如果存在标志位被设置 按页表项中的页框号计算物理地址; 如果存在标志位未被设置 缺页异常 * 缺页异常 异常与中断 异常 也称为同步中断 在处理器执行到由于编程失误而导致的错误指令时,或者在执行期间出现特殊情况(如缺页),必须靠内核处理时,处理器就会产生一个异常 中断 外部硬件产生的一个电信号,从CPU的中断引脚进入,打断当前CPU的运行 把需要的内容装入到内存中并设置相应的页表项 * 缺页中断 * 多级页表的使用 计算出页表项位于哪个页表页中 根据页表页号查找页目录 如果页表项在内存中 得到页表项在内存中的位置,读取页表项、找到页框号、计算出物理地址、访问物理单元 如果页表项未在内存中,缺页异常 异常处理程序创建一个新的页表页 * 页面的装入 预装入 访问速度很快 浪费空间 按需装入 不浪费空间 浪费时间 * 页面的装入 通常操作系统会综合利用这两种方式 创建进程时,为每个进程预装入一定数量的页面 当进程执行到一定阶段,需要新页面时,再按需要装入 装入要访问的页时捎带把后面的页也预装入一些 局部性原理 * 页面的淘汰 尽量减少缺页异常的发生 选择以后再也不会用到的页面淘汰 选择那些再次使用的时间距离现在最远的页面淘汰 * 淘汰算法 最优策略(OPT) 先进先出法(FIFO) 第二次机会置换法(SCR) 最近最少访问的策略(LRU) 简化形式的LRU 工作集算法 工作集时钟算法 * 最优策略(OPT) 选择以后再也不会用到的页面淘汰 选择那些再次使用的时间距离现在最远的页面淘汰 * 最优策略(OPT) * 最优策略(OPT) 操作系统需要知道将来要使用的页面顺序 作为一个最好的标准用在理想的实验环境下评测其他实用的淘汰策略 * 先进先出(FIFO)法 直接换出最早装入的页面 容易理解 方便程序设计 * 先进先出(FIFO)法 * 先进先出(FIFO)法 性能并不很好 缺点 存在Belady异常现象,即缺页率随内存块增加而增加 反常的现象:内存中可装入页面数增加了,缺页异常数反而也增加了 淘汰的是常用页面 * 第二次机会置换法(SCR) Second Chance Page Replacement, SCR 对FIFO算法的改进 避免把经常使用的页面置换出去 按时间顺序检查 设置页面访问位,检查队首页面的访问位 0: 淘汰该页;1:转移到队尾,给第二次机会 时钟置换法(Clock) 将页面保存在环形链表中 避免SCR法在链表中移动页面 * * 最近最少访问的策略 LRU,Least Recently Used 猜测将来可能访问的页面序列 如果一个页面很久没有被访问,根据局部性原理,将来被访问的可能性也比较小 选择未被访问时间最长的那些页面换出 * LRU策略 * 最近最少访问的策略 为每个在内存中的页面维持一个计时器 页面被访问时,计时器清0,否则随时间增长 操作系统要淘汰页面时,比较页面计时器,选出时间最长的页面 实验表明LRU的效果比FIFO要好 * 简化形式的LRU LRU策略的实现开销非常大 为每个页设置一个标志位,表示这个页面最近是否被访问过,称为访问位 通常设置在每个页的页表项中 页面被访问时,访问位设置为1 操作系统定期将所有页面的访问位清0 当操作系统需要挑选页面换出时,选择访问位为0的页面 使用最多的策略 工作集替换算法 工作集 一个进程当前正在使用的页面的集合 working set 若整个工作集都被装入内存, 进程在运行到下一运行阶段前,不会产生很多缺页中断 找出一个不在工作集中的页面并淘汰它 工作集w(k, t) 在任一时刻t,包含所有最近k次内存访问所访问过的页面的一个集合 * 工作集替换算法 工作集模型 设法跟踪进程的工作集,以确保在让进程运行以前,它的工作集就已在内存中了 跟踪进程的工作集 用长度为k的移位寄存器,每次内存访问把寄存器左移一位,在最右端插入刚访问的页面号 缺页时,读出移位寄存器内容并排序,删除重复的页面,即得到工作集 维护移位寄存器并在缺页中断时处理它所需的开销很大,从未被用

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档