蒲晓蓉第3章-03.ppt

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

3.5 虚拟存储管理技术 简单存储:要求将一个进程所需的程序和数据全部装入内存方可执行。 这样的系统存在两个很严重的问题。 — 其一,对于大进程,如果其所需内存空间超过了内存的最大容量,则无法运行。 — 其二,对于多道程序系统,由于每一个进程需要全部装入内存,使同时驻留内存的进程数量受到限制。虽然也可以通过提高内存容量来解决,但是代价太高。 如果能将一部分价格较低的外存空间当作内存使用,从逻辑上扩充内存容量。那么,将获得更高的性价比。 虚拟存储技术的理论依据 程序执行的局部性原理:程序的执行总是呈现局部性。即,在一个较短的时间段内,程序的执行仅限于某个部分;相应的,它所访问的存储空间也局限于某个区域。 因此,只要保证进程执行所需的部分程序和数据驻留在内存,一段时间内进程都能顺利执行。 实现虚拟存储的一般过程 进程运行之前,仅需要将一部分页面或段装入内存,便可启动运行,其余部分暂时保留在磁盘上。 进程运行时,如果它所需要访问的页面(段)已经装入内存,则可以继续执行下去; 如果其所需要访问的页面(段)尚未装入内存,则发生缺页(段)中断,进程阻塞。 此时,系统将启动请求调页(段)功能,将进程所需的页(段)装入内存。 实现虚拟存储的一般过程 如果当前内存已满,无法装入新的页(段),则还需要利用页(段)置换功能,将内存中暂时不用的页(段)交换到磁盘上,以腾出足够的内存空间。 再将进程所需的页(段)装入内存,唤醒阻塞的进程,使之重新参与调度执行。 ?什么是虚拟存储 通过系统提供的缺页/段中断功能和交换技术,动态装入进程的程序代码和数据,使得一个大的用户程序能在一个相对较小的内存空间中运行,也使得有限的内存能同时容纳更多的进程。 习惯上,人们把这种用户感觉上的、由实际内存和部分外存共同构成的存储空间称为虚拟存储器 虚拟存储技术的技术支持 首先,必须有相应的硬件支持,用以实现虚拟分页或虚拟分段存储管理。 其次,操作系统必须提供相应的软件支持,管理页或段在内存和外存之间的移动。 虚拟存储的基本数据结构 由于虚拟存储系统中,进程的程序代码和数据只有一部分在内存,另一部分保存在外存。 在页/段表项中增加一个“存在”字段,其值为0或1。 增加一个“修改”字段,表明对应页/段自进入内存以来是否被修改过。只有被修改过的页/段才需要保存到外存,若需要将未修改过的页/段换出内存,只需要将新装入的页/段直接覆盖其存储区域,而不必将其内容保存到外存。 虚拟存储的好处 第一,可以运行大程序,包括超过内存实际容量的大程序。 第二,可以在有限的物理内存中运行更多的程序。多道程序系统的度不再受到物理内存空间的限制。 虚拟存储的典型问题 抖动(thrashing) 当进程要求装入新的页面或程序段时,如果当前没有足够的空闲空间,需要交换一些页面或段到外存。如果被交换出去的页面或段很快将被进程使用,则又需要将其换入内存。 如果系统花费大量的时间把程序和数据频繁地装入和移出内存而不是执行用户指令,那么,称系统出现了抖动。出现抖动现象时,系统显得非常繁忙,但是吞吐量很低,甚至产出为零。 根本原因:选择的页面或段不恰当。 虚拟存储分页技术 建立在简单分页存储管理系统之上,是目前常用的一种虚拟存储管理技术。 地址变换 基于简单存储分页系统增加了某些功能,如产生和处理缺页中断,以及从内存中换出页面等。 进程执行时,首先通过根据逻辑地址中的页号,查找快表中是否存在对应的页表项。若快表中不存在该页表项,则再查找页表。检查对应的页面是否在内存中存在。若该页面不在内存,启动缺页中断处理例程,装入需要的页面,并更新页表和快表。若该页面已经在内存中,将对应的页表项插入快表中,更新快表。若快表中存在该表项,则直接取出其中的页框号,加上页内偏移量,计算出物理地址。 缺页中断处理过程 (1)操作系统接收到进程产生的缺页中断信号,启动中断处理例程,保留处理机现场; (2)操作系统通知处理机从外存读取指定的页面; (3)处理机激活I/O设备; (4) 检查内存有无足够的空闲空间装入该页面?若有,转(6),否则,执行(5); (5) 利用页面置换算法,选择内存中的某个页面,换出内存; (6) 将指定页面从外存装入内存; (7) 更新该进程的页表; (8) 更新快表; (9)计算物理地址。 虚拟存储分段技术 建立在简单存储分段系统基础上,利用动态分区技术分配存储空间,并以段作为交换的单位。 进程执行之前,系统为之分配几个必要的内存分区,每一个分区中装入一段。 当进程执行过程中,出现缺段中断时,操作系统将为进程装入需要的程序段。 虚拟存储分段:数据结构 因此,需要修改段表,增加“存在”字段和“修改”字段,分别标明对应段是否存在于内存,以及内存中的段自

文档评论(0)

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

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

1亿VIP精品文档

相关文档