网站大量收购独家精品文档,联系QQ:2885784924

第一章 3.5 虚拟存储技术.ppt

  1. 1、本文档共107页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为什么要引入虚拟存储器? 实存管理:必须为进程分配足够的空间,装入全部信息,即使对换,也是针对整个进程(一次性,驻留性) 存在问题:进程运行时不用的,或暂时不用的,或某种条件下才用的程序和数据,全部驻留于主存是对宝贵的存储资源的浪费;主存资源不够用怎么办? 解决方法:部分装入,部分替换 部分装入:不必装入进程的全部信息,仅将当前使用部分先装入主存,其余部分存放在磁盘中,待使用时系统自动将其装进来。当进程所访问的程序和数据在主存时,可顺利执行;如果不在主存,系统自动将这部分信息从外存装入内存(请求调入功能) 部分替换:如果没有足够的空闲物理空间,便把主存中暂时不用的信息移至磁盘(页面置换功能) 通过部分装入和部分替换: 当主存空间小于进程的需要量时,进程也能运行; 当多个进程的总长超出主存总容量时,也可将进程全部装入主存,实现多道程序运行 所有这些“部分换入换出”对用户完全是透明的,用户编程时不必考虑物理空间的实际容量,允许用户的逻辑地址空间大于主存物理地址空间,用户感觉到的是比实际物理内存大的多的主存 ——虚拟存储器 虚拟存储技术的思想 总结:将外存作为内存的扩充,进程运行不需要将进程的全部信息放入内存,将暂时将不运行的进程信息放在外存,通过内存与外存之间的对换,使系统逐步将进程信息放入内存,最终达到能够运行整个进程,从逻辑上扩充内存的目的。 虚拟内存实现基础: 局部性原理 早在1968年, Denning.P就曾指出: (1) 顺序性:程序执行时, 除了少部分的转移和过程调用指令外, 在大多数情况下仍是顺序执行的。 (2) 局限性:过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域, 但经研究看出,过程调用的深度在大多数情况下都不超过5。程序中还包括许多对数据结构的处理, 如对数组进行操作, 它们往往都局限于很小的范围内。 (3) 多次性:程序中存在许多循环结构, 这些虽然只由少数指令构成, 但是它们将多次执行。 (4) 独立性:程序中有些部分彼此互斥,不是每次运行都用到 虚拟存储器的定义 在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换(单位是页或段)功能,能从逻辑上为用户提供一个比物理主存容量大的多的、可寻址的“主存储器”,对用户隐蔽了可用物理存储器的容量和具体操作细节。 虚拟存储器的组织形式 硬盘的这部分特殊区域称作对换区 虚拟存储器相关注意事项 支持虚存的物质基础:一定的主存,存放正在运行的一部分信息;一部分外存,作为主存的补充;地址变换机构,以实现程序的虚地址向实地址的转换 虚拟存储器的容量(即给进程提供的逻辑地址空间)由CPU的地址长度决定,与实际内存的大小没有关系 例如:如果计算机系统的地址为32位,则可寻址的范围为0~4G;如果计算机系统的地址为20位,则可寻址的范围为0~1M。计算机系统的可寻址范围为虚拟存储器的最大范围。而物理内存一般是小于虚拟存储大小的 3.6 请求分页虚拟存储管理 基本原理(和页式管理比较) 1)首先,物理的内存空间被划分为等长的物理块,并对块编号。同时,用户程序也进行分页,这些与页式存储管理相同。 2)在用户程序开始执行前,不将该程序的所有页都一次性装入内存,而是先放在外存。当程序被调度投入运行时,系统先将少数页装入内存,随着程序运行,如果所访问的页在内存中,则对其管理与分页存储管理情况相同 3)若发现所要访问的数据或指令不在内存中,就会产生缺页中断,到外存寻找包含所需数据或指令的页,并将其装入到内存的空闲块中。 4)在装入一页的过程中,若发现内存无空闲块或分配给该进程的物理块已用完,则需要通过页面置换功能从已在内存的页中挑选一个将其淘汰,释放所占用的物理块后将新的页面装入该块,进程继续运行。 5)被淘汰的页面如果刚才被修改过,则还需要将其回写到外存,以保留其最新内容。 需要解决的问题 系统需要解决下面五个问题: 1)需要提供一个全新的页表机制来记录任一页是在内存或在外存的位置、是否被修改过等信息。 2)在请求分页虚拟存储管理方式下,内存中允许装入多个进程,每个进程占用一部分物理块,问题在于:为每个进程分配多少个物理块才合适?采用何种分配方式才合理? 3)进程运行过程中发现所要访问的数据或指令不在内存时,便会产生缺页中断,到外存寻找该页,此时,缺页中断如何处理 需要解决的问题 4)一个页面或者是一开始就装入内存,或者是在运行中被动态的装入内存,如何进行地址重定位? 5)在动态装入一个页面时,若发现内存当前无空闲块或分配给该进程的物理块已经用完,则需要从已在内存的页面中选出一个将其淘汰。问题在于:在什么范围内选择要淘汰的页面?淘

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档