LRU近似算法之后通过检测引用位-Read.PPT

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LRU近似算法之后通过检测引用位-Read

虚拟内存 基本概念 前面第五章所讨论的内存管理策略,都基于一个要求:执行指令必须在物理内存中,而满足这一要求的第一个方法是将整个进程放在内存中 覆盖和动态加载可以帮助减轻这种限制 虚拟内存 (VM) 这种技术允许执行的进程不完全在内存中 不容易实现, 如果使用得不好可能影响效率 基本概念 实际程序检测结果表明, 大多数情况下,(程序运行时)并非整个程序都需要(在内存中) 用以处理常见错误情况的代码 —— 这种错误很少发生(就是说,像这样的代码,由于错误很少发生,所以这种代码几乎不执行) 即使整个程序都需要时, 也不大可能同时需要所有的程序 覆盖(就是说,由于不大可能同时需要,所以内存空间可以相互覆盖) 基本概念 (让)运行的程序只有部分在内存中,这样的好处有: 用户的程序不会受可用物理内存数量的限制 每个用户程序将使用更少的内存, 这样更多的程序可以同时运行,提高CPU的使用率 基本概念 VM(虚拟内存)是一个需要硬件支持的技术 这个概念首先由Fotheringham于1961年设计提出的 在高速储存设备上实现 (如:disk硬盘) 虚拟内存通常采用请求页面调度来实现 在支持 VM的系统中,覆盖技术消失了 请求页 请求页 请求页面调度系统类似于分页系统加上交换 交换技术 如下: 初始时,进程驻留在次级存储器上 (磁盘) 当需要执行进程时,将它换入内存。然后整个进程被调入内存中运行,即进程的每个页面被加载在内存的空闲帧中 请求页 页面交换技术使用的策略是只有当一个页面需要时才把它调入内存中 而交换则操纵整个进程(即进程一运行,就把所有页面都调入),换入换出以一个进程为单位,而页面交换技术只关心进程的单独一个页面(即只有一个页面需要时才调入) 这样调页程序就避免了读入那些不使用的页,也减少了交换时间和所需的物理内存空间。 分页 请求页 页错误(缺页) 当进程试图访问那些尚未调入到内存的页时即需要的页面不在内存中时,将出现什么情况? 可能需要从一个页面中读取一条指令,而该页面当前不在物理内存中,或者 一条指令需要读写一个页面中的某个位置,而该页面当前不在物理内存中 出现以上的任何一种情况, 内存管理(模块)产生一个页面错误 页错误 指令中止,然后产生一个缺页中断 该中断被操作系统中的服务例程截获,服务例程从虚拟内存中把页面加载到内存中 (必须找到一个空闲帧) 产生中断的指令重新运行 页面被请求时才被加载, 因此称为“页面请求策略” 纯粹请求页面调度 纯粹请求页面调度: 只有在需要时才将页调入内存 一种极端情况是所有的页都不在内存中,这时就开始执行进程 当操作系统执行进程的第一条指令时,由于所在的页不在内存中,进程立即出现页错误 当页调入内存时,进程继续执行,并不断地出现页错误直到所需的页均在内存中 页替换 页替换 在某个时刻,一个进程可能引用一个当前不在内存的页,而此时物理内存也没有空闲帧可以分配给该请求页 操作系统可以结束这个进程 操作系统也可以将这个进程换出 更感兴趣的做法是:OS 用虚拟内存中的请求页替换现在内存中的某一页——如果不选择终止或换出这个进程的话 页替换 页替换过程需要处理的步骤 首先,查找所需页在磁盘上的位置 其次,查找一个空闲帧,如果有空闲帧就装入该页 如果没有空闲帧,那么就用页替换算法选择一个“牺牲”帧 将所需页读入空闲帧或者空闲帧 改变相应的页表和帧表 重启用户进程 页替换算法 页替换算法 选择一个不容易产生页错误的替换算法非常重要 通常情况下,我们总是希望选用最低页错误率的替换算法 页替换算法 可以这样来评估一个算法,针对特定内存引用串运行某个替换算法,并计算出各个算法页错误的数量 可以人工的生产内存引用串 为了确定发生页错误的次数,还需要知道可用帧的数量 内存引用串 例如,如果跟踪一个特定进程,那么可记录如下地址顺序 0722, 0050, 0121, 0212, 0012, 0310, 0019, 0421, 0289, 0302, 0076, 0365, 0196 CPU访问数据的物理地址可能值是按照先 0722, 然后 0050, 再 0121, …… 如果每页大小为100字节,那么这个地址顺序可以转变为如下的引用串 页替换算法 FIFO:先进先出算法 Optimal:最优页替换算法 FIFO替换算法 FIFO是最简单的页替换算法 该算法为每个页记录着该页调入内存的时间 FIFO 的思想是总是替换当前进程最早进入内存的页(最早时间的页) 算法特点: 该算法容易理解和实现 但是其性能并不总是很好 FIFO先进先出页替换算法 最早的页可能是经常被引用的页,当有请求页申请空闲帧时,最早的页就被替换出,可是在需要它的时候,最早页就必须立即被再次加载 可能导致(那些)使用频繁的页被不必要地替换出,容易

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档