操作系统原理与实例分析

上传人:xzh****18 文档编号:50033285 上传时间:2018-08-06 格式:PPT 页数:72 大小:177KB
返回 下载 相关 举报
操作系统原理与实例分析_第1页
第1页 / 共72页
操作系统原理与实例分析_第2页
第2页 / 共72页
操作系统原理与实例分析_第3页
第3页 / 共72页
操作系统原理与实例分析_第4页
第4页 / 共72页
操作系统原理与实例分析_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《操作系统原理与实例分析》由会员分享,可在线阅读,更多相关《操作系统原理与实例分析(72页珍藏版)》请在金锄头文库上搜索。

1、3.5 3.5 虚拟存储管理技术虚拟存储管理技术 简单存储:要求将一个进程所需的程序和数据简单存储:要求将一个进程所需的程序和数据 全部装入内存方可执行。全部装入内存方可执行。 这样的系统存在两个很严重的问题。这样的系统存在两个很严重的问题。 其一,对于大进程,如果其所需内存空间超过了内存其一,对于大进程,如果其所需内存空间超过了内存 的最大容量,则无法运行。的最大容量,则无法运行。 其二,对于多道程序系统,由于每一个进程需要全部其二,对于多道程序系统,由于每一个进程需要全部 装入内存,使同时驻留内存的进程数量受到限制。虽装入内存,使同时驻留内存的进程数量受到限制。虽 然也可以通过提高内存容量

2、来解决,但是代价太高。然也可以通过提高内存容量来解决,但是代价太高。 如果能将一部分价格较低的外存空间当作内存如果能将一部分价格较低的外存空间当作内存 使用,从逻辑上扩充内存容量。那么,将获得使用,从逻辑上扩充内存容量。那么,将获得 更高的性价比。更高的性价比。虚拟存储技术的理论依据虚拟存储技术的理论依据 程序执行的局部性原理:程序的执行总是呈现程序执行的局部性原理:程序的执行总是呈现 局部性。即,在一个较短的时间段内,程序的局部性。即,在一个较短的时间段内,程序的 执行仅限于某个部分;相应的,它所访问的存执行仅限于某个部分;相应的,它所访问的存 储空间也局限于某个区域。储空间也局限于某个区域

3、。 因此,只要保证进程执行所需的部分程序和数因此,只要保证进程执行所需的部分程序和数 据驻留在内存,一段时间内进程都能顺利执行据驻留在内存,一段时间内进程都能顺利执行 。实现虚拟存储的一般过程实现虚拟存储的一般过程 进程运行之前,仅需要将一部分页面或段装入进程运行之前,仅需要将一部分页面或段装入 内存,便可启动运行,其余部分暂时保留在磁内存,便可启动运行,其余部分暂时保留在磁 盘上。盘上。 进程运行时,如果它所需要访问的页面(段)进程运行时,如果它所需要访问的页面(段) 已经装入内存,则可以继续执行下去;已经装入内存,则可以继续执行下去; 如果其所需要访问的页面(段)尚未装入内存如果其所需要访

4、问的页面(段)尚未装入内存 ,则发生缺页(段)中断,进程阻塞。,则发生缺页(段)中断,进程阻塞。 此时,系统将启动请求调页(段)功能,将进此时,系统将启动请求调页(段)功能,将进 程所需的页(段)装入内存。程所需的页(段)装入内存。实现虚拟存储的一般过程实现虚拟存储的一般过程 如果当前内存已满,无法装入新的页(如果当前内存已满,无法装入新的页( 段),则还需要利用页(段)置换功能段),则还需要利用页(段)置换功能 ,将内存中暂时不用的页(段)交换到,将内存中暂时不用的页(段)交换到 磁盘上,以腾出足够的内存空间。磁盘上,以腾出足够的内存空间。 再将进程所需的页(段)装入内存,唤再将进程所需的页

5、(段)装入内存,唤 醒阻塞的进程,使之重新参与调度执行醒阻塞的进程,使之重新参与调度执行 。 从外存装入页/段更新页/段表交换页/段内存满 ?是否缺页/段中断页/段 在内存是否进程执行图3.28 实现虚拟存储的典型过程?什么是虚拟存储什么是虚拟存储 通过系统提供的缺页通过系统提供的缺页/ /段中断功能和交换技术段中断功能和交换技术 ,动态装入进程的程序代码和数据,使得一个,动态装入进程的程序代码和数据,使得一个 大的用户程序能在一个相对较小的内存空间中大的用户程序能在一个相对较小的内存空间中 运行,也使得有限的内存能同时容纳更多的进运行,也使得有限的内存能同时容纳更多的进 程。程。 习惯上,人

6、们把这种用户感觉上的、由实际内习惯上,人们把这种用户感觉上的、由实际内 存和部分外存共同构成的存储空间称为存和部分外存共同构成的存储空间称为虚拟存虚拟存 储器储器虚拟存储技术的技术支持虚拟存储技术的技术支持 首先,必须有相应的硬件支持,用以实首先,必须有相应的硬件支持,用以实 现虚拟分页或虚拟分段存储管理。现虚拟分页或虚拟分段存储管理。 其次,操作系统必须提供相应的软件支其次,操作系统必须提供相应的软件支 持,管理页或段在内存和外存之间的移持,管理页或段在内存和外存之间的移 动。动。虚拟存储的基本数据结构虚拟存储的基本数据结构 由于虚拟存储系统中,进程的程序代码和数据由于虚拟存储系统中,进程的

7、程序代码和数据 只有一部分在内存,另一部分保存在外存。只有一部分在内存,另一部分保存在外存。 在页在页/ /段表项中增加一个段表项中增加一个“存在存在”字段,其值字段,其值 为为0 0或或1 1。 增加一个增加一个“修改修改”字段,表明对应页字段,表明对应页/ /段自进段自进 入内存以来是否被修改过。只有被修改过的页入内存以来是否被修改过。只有被修改过的页 / /段才需要保存到外存,若需要将未修改过的段才需要保存到外存,若需要将未修改过的 页页/ /段换出内存,只需要将新装入的页段换出内存,只需要将新装入的页/ /段直接段直接 覆盖其存储区域,而不必将其内容保存到外存覆盖其存储区域,而不必将其

8、内容保存到外存 。 图3.29 虚拟分页、分段及段页式存储系统的数据结构页号页框号存在修改其他控制(a) 虚拟存储页表项段号段长存在修改其他控制(b) 虚拟存储段表项段基址长(c) 虚拟存储段页式系统的段表项和页表项段号其他控制页表长度页表基址段表项页号页框号存在修改其他控制页表项虚拟存储的好处虚拟存储的好处 第一,可以运行大程序,包括超过内存第一,可以运行大程序,包括超过内存 实际容量的大程序。实际容量的大程序。 第二,可以在有限的物理内存中运行更第二,可以在有限的物理内存中运行更 多的程序。多道程序系统的度不再受到多的程序。多道程序系统的度不再受到 物理内存空间的限制。物理内存空间的限制。

9、虚拟存储的典型问题虚拟存储的典型问题 抖动(抖动(thrashingthrashing) 当进程要求装入新的页面或程序段时,如果当当进程要求装入新的页面或程序段时,如果当 前没有足够的空闲空间,需要交换一些页面或前没有足够的空闲空间,需要交换一些页面或 段到外存。如果被交换出去的页面或段很快将段到外存。如果被交换出去的页面或段很快将 被进程使用,则又需要将其换入内存。被进程使用,则又需要将其换入内存。 如果系统花费大量的时间把程序和数据频繁地如果系统花费大量的时间把程序和数据频繁地 装入和移出内存而不是执行用户指令,那么,装入和移出内存而不是执行用户指令,那么, 称系统出现了称系统出现了抖动抖

10、动。出现抖动现象时,系统显。出现抖动现象时,系统显 得非常繁忙,但是吞吐量很低,甚至产出为零得非常繁忙,但是吞吐量很低,甚至产出为零 。 根本原因:选择的页面或段不恰当。根本原因:选择的页面或段不恰当。虚拟存储分页技术虚拟存储分页技术 建立在简单分页存储管理系统之上,是建立在简单分页存储管理系统之上,是 目前常用的一种虚拟存储管理技术。目前常用的一种虚拟存储管理技术。地址变换地址变换 基于简单存储分页系统增加了某些功能,如产基于简单存储分页系统增加了某些功能,如产 生和处理缺页中断,以及从内存中换出页面等生和处理缺页中断,以及从内存中换出页面等 。 进程执行时,首先通过根据逻辑地址中的页号进程

11、执行时,首先通过根据逻辑地址中的页号 ,查找,查找快表快表中是否存在对应的页表项。若快表中是否存在对应的页表项。若快表 中不存在该页表项,则再查找中不存在该页表项,则再查找页表页表。检查对应。检查对应 的页面是否在内存中存在。若该页面的页面是否在内存中存在。若该页面不在内存不在内存 ,启动,启动缺页中断处理缺页中断处理例程,装入需要的页面,例程,装入需要的页面, 并更新页表和快表。若该页面已经在内存中,并更新页表和快表。若该页面已经在内存中, 将对应的页表项插入快表中,将对应的页表项插入快表中,更新快表更新快表。若快。若快 表中存在该表项,则直接取出其中的表中存在该表项,则直接取出其中的页框号

12、,页框号, 加上页内偏移量,计算出物理地址加上页内偏移量,计算出物理地址。 访问页表图3.30 虚拟存储分页系统地址变换过程物理地址页框号 偏移量更新快表页号偏移量逻辑地址检索快表是否是否换出页面处理机处理中断是否处理机从外存取该页将该页装入内存更新页表缺页中断处理?命中?内存满?页在内存缺页中断处理过程缺页中断处理过程(1 1)操作系统接收到进程产生的缺页中断信号,启动中)操作系统接收到进程产生的缺页中断信号,启动中 断处理例程,保留处理机现场;断处理例程,保留处理机现场; (2 2)操作系统通知处理机从外存读取指定的页面;)操作系统通知处理机从外存读取指定的页面; (3 3)处理机激活)处

13、理机激活I/OI/O设备;设备; (4 4) 检查内存有无足够的空闲空间装入该页面?若有检查内存有无足够的空闲空间装入该页面?若有 ,转(,转(6 6),否则,执行(),否则,执行(5 5);); (5 5) 利用页面置换算法,选择内存中的某个页面,换利用页面置换算法,选择内存中的某个页面,换 出内存;出内存; (6 6) 将指定页面从外存装入内存;将指定页面从外存装入内存; (7 7) 更新该进程的页表;更新该进程的页表; (8 8) 更新快表;更新快表; (9 9)计算物理地址。)计算物理地址。 虚拟存储分段技术虚拟存储分段技术 建立在简单存储分段系统基础上,利用动态分建立在简单存储分段系

14、统基础上,利用动态分 区技术分配存储空间,并以段作为交换的单位区技术分配存储空间,并以段作为交换的单位 。 进程执行之前,系统为之分配几个必要的内存进程执行之前,系统为之分配几个必要的内存 分区,每一个分区中装入一段。分区,每一个分区中装入一段。 当进程执行过程中,出现缺段中断时,操作系当进程执行过程中,出现缺段中断时,操作系 统将为进程装入需要的程序段。统将为进程装入需要的程序段。虚拟存储分段:数据结构虚拟存储分段:数据结构 因此,需要修改段表,增加因此,需要修改段表,增加“ “存在存在” ”字段字段 和和“ “修改修改” ”字段,分别标明对应段是否存字段,分别标明对应段是否存 在于内存,以

15、及内存中的段自装入以来在于内存,以及内存中的段自装入以来 是否被修改过。是否被修改过。地址变换与存储保护地址变换与存储保护 在简单分段系统的地址变换机构基础上形成的在简单分段系统的地址变换机构基础上形成的 。 越界检查越界检查:可能产生一个地址越界中断,进入:可能产生一个地址越界中断,进入 相应的中断处理例程执行。一般地,当地址越相应的中断处理例程执行。一般地,当地址越 界中断处理完毕,该进程将异常结束。界中断处理完毕,该进程将异常结束。 操作合法性检查操作合法性检查:如果属于非法操作,产生非:如果属于非法操作,产生非 法访问中断,这时也会让进程异常终止。法访问中断,这时也会让进程异常终止。

16、缺段处理缺段处理:执行进程被阻塞。并产生一个中断:执行进程被阻塞。并产生一个中断 信号,处理机执行缺段中断处理例程。信号,处理机执行缺段中断处理例程。图3.31 虚拟存储分段系统地址变换过程物理地址段基址 偏移量更新快表否非法访问中断是是否是越界中断处理访问段表段号 偏移量逻辑地址检索快表否是缺段中断处理否更新段表?命中?段在内存?地址越界?合法访问图3.31 虚拟存储分段系统中的缺段中断的处理过程换出一个或几个段 形成一个合适空闲区返回修改段表、空闲分区表从外存读入段s唤醒进程是拼接外零头,形成 一个合适的空闲区是段s不在内存阻塞执行进程内存中有合 适的空闲区 吗?否空闲区容量 总和能否满 足?否虚拟存储段页式技术虚拟存储段页式技术

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号