os_07虚拟存储器.ppt

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

虚拟存储器 利用辅助存储器扩展内存空间的技术 背景 在我们讨论过的存储器管理方案中,进程在执行前,其地址空间必须完整的被装入到内存。 在很多时候,完全的装入并不是必须的 程序员通常会在编写程序时加入并不常用的错误处理代码。 为数组,列表等数据结构分配的内存往往大于它们实际需要。 选择结构中的代码可能极少被用到。 局部性原理 背景 允许执行一个只有局部地址空间装入内存的进程有许多好处 它允许进程使用一个比物理地址空间大的多的进程。 允许在有限的空间中运行更多的进程 早期的内存扩充技术-覆盖 只将在进程执行的任何时间都需要的那部分指令和数据载入内存。 只有在内存的空间无法满足进程执行所需空间时才采用。 覆盖由程序员自行设计完成,操作系统不提供任何支持,支持覆盖的程序结构十分复杂 早期的内存扩充技术-交换 进程可以从内存中被暂时地换出至后备存储器。而后,根据执行的需要再将其换入内存。 后备存储器:必须具备以下几个条件:1)直接存取设备;2)空闲空间足以容纳所有的用户进程再内存中的映像。实现后备存储器的方法有: 交换文件Swap File 交换设备Swap device 换入,换出:依据调度算法的优先级,一般将优先级较低的进程换出,以便优先级更高的进程换入内存执行。(换入/换出在CPU空闲时完成) 虚拟存储器 虚拟存储器管理技术呈现给用户的内存空间远比计算机系统实际装配的内存大得多。 进程只需要装入其地址空间的一部分即可执行。 逻辑地址空间可以大于物理地址空间 允许多个进程共享一组地址空间。 它需要少量的I/O操作以便将程序装入(或换入)内存 虚拟存储器的实现需要硬件的支持 实现虚拟存储器可以通过 请求页 请求段 请求页 以页为单位的交换系统。 需要执行哪个进程,就将该进程换入内存。 一个懒惰的交换系统,进程执行过程中,除非该页被访问,否则我们不将其换入内存。 请求页系统的页表 每一个页表项需要设置一个有效位 1:合法且该页在内存中 0:页不在合法的范围,或不在内存 初始状态下,所有的有效位均为0 指令执行时,状态位为0会导致缺页中断 如何定位辅存中页的位置? 页表中辅存的信息 辅存中记录页信息的数据结构 请求页系统实现机制 硬件系统 页表:需要设置有效位记录页是否在内存。 辅助存储器:保存进程中那些不在内存的页 软件系统: 页面调度算法 缺页中断 当前指令访问的数据所在的页不在内存时 发出异常 保存处理器现场 判断异常为缺页中断 判断访问页是否合法,若合法,则定位其在辅存中的位置 将辅存中的页读入到内存的一个空闲帧中 等待页换入时,将CPU分配给其他的用户进程 页换入完成,磁盘驱动器发出中断请求 保存当前运行进程的执行现场 (若第6步已经执行) 确定发出的中断为磁盘请求中断 修改相关数据结构(页表及辅存页表信息)表明导致缺页中断的页已在内存 在就绪队列中等待直到获得CPU执行权 恢复进程执行现场,调入新的页表,重新执行产生中断的指令。 页置换的需要 当进程执行时请求的页不在内存,且内存中无空闲帧时,我们怎么办呢? 中止用户进程? 操作系统将内存中的某个进程换出,为该进程释放空闲帧,减少并发进程的个数? 置换内存中的某页? 页置换的需要 页置换过程 在磁盘中找到需要换入的页 寻找一个空闲的帧 存在空闲的帧 不存在空闲帧时,使用页置换策略置换一个帧。修改相应的页表或帧表 将该页放入空闲帧,并修改页表 重启进程 页面调度算法 有两种基本类型的页式算法: 静态分配:使用静态页式算法,在一个进程被创建时分配给进程固定的页帧数目。 动态分配:使用动态页式算法,进程被分配的页帧数随着进程的执行而改变。 在两种形式的分配算法中,页分配策略规定了虚拟存储系统如何加载或卸载这些页帧。在定义任何一种页式算法时,有三个基本原则: 取策略:决定什么时候一个页应该被加载到主存中。 替换策略:确定如果所有的页帧都满了,哪个页应该被移出。 放置策略:确定取到的页应该被加载到主存中的什么位置。 静态页面调度算法 取策略:请求分页,即只有在当进程访问一个页时才被加载到主存。 请求分页算法:在请求分页的静态页帧分配算法中,整个策略的唯一变化是替换算法。 最佳(optimal)算法 先进先出(FIFO)算法 最近最久未使用(LRU)算法 时钟(Clock)算法 最佳(Optimal)置换算法 最佳置换算法是由Belady于1966年提出的一种理论上的算法。 其所选择的被淘汰页面,将是以后永不使用的, 或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,通常可保证获得最低的缺页率。 先进先出(FIFO)页面置换算法 FIFO淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰 用于记录“驻留时间最久页面”的数据结构 先进先出(FIFO)

文档评论(0)

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

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

1亿VIP精品文档

相关文档