虚拟内存.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚拟内存ppt课件

虚拟内存 四川大学计算机学院 左劼 提纲 背景 请求页面调度 页面置换 帧分配 系统颠簸 其他考虑 虚拟内存 (Virtual memory) 虚拟内存:将用户逻辑内存和物理分开 允许程序只有部分内容在内存中执行 逻辑地址空间可以比物理内存大很多 需要页面被换入换出 虚拟内存可以通过以下机制实现: 请求页面调度 请求分段调度 为什么需要虚拟内存 整个程序全部装入内存不是必须的 程序中的很多代码不会被同时使用到 有很多数据结构分配内存是按照最大需求分配的 允许部分程序在内存中的好处 可以编写比物理内存大的程序 提高了CPU的利用率和吞吐量 减少了I/O的需求,于是系统变得更快 虚拟内存示意图 虚拟内存的基本概念 虚拟内存的基本概念 进程驻留在二级存储器上(通常是磁盘) 进程的活动部分,即目前存取的部分驻留在内存中 使用延迟交换方法,除非一个页面马上要被访问,它是不会被换入内存中的 提纲 背景 请求页面调度 页面置换 帧分配 系统颠簸 其他考虑 请求页面调度 只有在必要的情况下才将页面调入内存 更低的 I/O 需求 更少的内存占用 更快的响应 需要一个页面 ? 对该页面有一个引用 无效的引用 ? 中止 没有在内存中 ? 将其调入内存 有效-无效位 页表的每一条记录中有一个有效-无效位 (1 ? 在内存中,0 ? 不在内存) 初始所有的有效-无效位为0 当进行地址转换的时候,如果有效-无效位是0,则发生缺页错误 请求页面调度中的页表 缺页错误(page fault) 对一个页面的第一次引用,会掉入操作系统的缺页陷阱中 操作系统在陷阱中会对引用情况进行检查,进行相应的处理 处理完毕后继续进程的执行 缺页错误处理过程 检查引用是否有效 如果无效,中止进程 如果是有效的,但不在内存中,将页面换入内存 从物理内存的空闲帧列表中找到一个空闲帧 进行磁盘操作,读入希望的页面到新分配的帧中 修改页表指示页已经在内存中 重新执行刚才的指令,进程可以访问该页面 缺页错误处理过程 硬件支持 页表: 可以通过有效-无效位或者保护位的特殊值标记一个记录是无效的, 二级存储器 高速的磁盘 ? 交换设备,交换空间,或者叫后备空间 重新执行指令问题 缺页错误后将重新执行当前指令 缺页错误可能发生在指令执行的任何时刻,包括取指,解码,取数据等 例子 ADD A, B, C Fetch and decode ADD Fetch A Fetch B Add A and B Store sum in C 上面的指令在缺页错误发生后重新执行不会发生任何问题 问题 如果一条指令修改了位于内存中不同地方的很多数据(比如串操作),那么重新执行指令将发生严重问题 两种解决办法 计算指令存取的范围,保证不会发生缺页 使用临时寄存器保存当前计算的位置 如果没有空闲的帧,该怎么办? 页面置换:找到内存中的一些页面,并且它们没有正在被使用,将他们换出 如何找? 性能如何? 有些页面可能重复被调入调出多次 缺页错误的代价 缺页错误包含很多的处理内容,主要包括 发生缺页中断 从磁盘读入页面到内存 重新启动进程 (1) 和 (3) 很小 (2) 时间在 20 多毫秒以上 请求页面的代价 缺页率 0 ? p ? 1.0 如果 p = 0 不会发生缺页 如果 p = 1 每次都发生缺页 有效存取时间 (EAT) EAT = (1 – p) x memory access + p (page fault overhead + [swap page out] + swap page in + restart overhead) 写时拷贝(copy on write) 为了节约,两个进程通过页表共享同一个物理帧的数据 其中一个进程想向页面写入数据,为了不影响另外一个进程,操作系统复制该物理帧,同时修改进程的页表,让页面指向新的帧 内存映射文件 将文件映射到内存中,使用访问内存的方式来访问文件 通过使用虚拟内存技术,可以不读入全部文件到内存,而只在需要的时候才将数据读入内存 提纲 背景 请求页面调度 页面置换 帧分配 系统颠簸 其他考虑 页面置换的需求 过度分配(Over-allocating)内存可以增加CPU的利用率和吞吐量,因为一个进程可能不会使用它们的所有的页面,可以运行更多的进程 但是,可以会出现某个时刻没有空闲帧了,所有的帧都被使用了 内存是宝贵的资源,缓存等还需要它 页面置换的需求(续) 基本页面置换 在磁盘上找到需要的页面的位置 找到一个空闲的帧: 如果有空闲的帧,就使用它 如果没有,使用页面置换算法选择一个牺牲品,将页面写入到磁盘中,释放物理帧 将需要的页面读入到帧中并修

文档评论(0)

xyz118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档