当前位置:   article > 正文

计算机操作系统(五)虚拟存储器_计算机操作系统虚拟存储器代码实现

计算机操作系统虚拟存储器代码实现

1 虚拟存储器概述

① 有的作业很大,其所要求的内存空间超过了内存容量,作业不能被全部装入内存,导致作业无法运行
② 有大量的作业需要运行,但是内存容量不足以容纳这些所有的作业,只能将少数作业放入内存,而将大多数作业放在外存

1.1 常规存储管理方式的特征和局部性原理

1.1.1 特征

① 一次性:指作业必须全部一次性的装入内存后方可运行,所以作业过大时将无法运行
② 驻留性:作业被装入内存后,整个作业一直驻留在内存中,其中任何部分都不能被置换到外存

1.1.2 局部性原理

局部性规律:即在较短时间内,程序的执行仅局限于某个部分,其所访问的存储空间也仅限于某个区域

① 时间局限性:程序中某个指令被执行完毕后,不久后又会执行这个指令
② 空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也会被访问,即程序一段时间内所访问的地址可能集中在一定的范围之内。

1.1.3 虚拟存储器的基本工作情况

基于局部性原理,程序在运行时没有必要把其全部装入内存中,而仅仅将那些当前需要访问和运行的少数页面或段先存入内存;程序运行时,如果它所要访问的页(段)已经调入内存,便可执行下去;但如果程序所要访问的页(段)还没调入内存,便发出缺页(段)中断请求,此时OS将利用请求页(段)功能将其调入内存,以便程序继续运行下去;若此时内存已满,OS还利用页(段置换功能)将内存中暂时不用的页(段)调入外村腾出内存空间,再将需要访问的页(段)调入内存。

1.2 虚拟存储器的定义与特征

1.2.1 定义
1.2.2 特征

① 多次性:一个作业中的程序和数据无需一次性全部装入内存,而是被多次调入内存
② 对换性:允许将那些暂时在内存中不用的代码和数据调入外存的对换区
③ 虚拟性:能够从逻辑上扩充容量,使用户所看到的内存容量远大于实际内存容量

1.3 虚拟存储器的实现方法

1.3.1 分页请求系统

在分页系统的基础上增加请求调页功能和页面置换功能

  • 硬件支持
    ① 请求分页的页表机制
    ② 缺页中断机制
    ③ 地址变换机构
1.3.2 分段请求系统

在分段系统的基础上增加请求调页功能和页面置换功能

  • 硬件支持
    ① 请求分段的段表机制
    ② 缺段中断机制
    ③ 地址变换机构

2 请求分页存储管理方式

2.1 硬件支持

  • 请求页表机制
    ① 状态位(存在位)P:用于指示该页是否调入内存,供程序调用时参考;
    ② 访问字段A:记录本页一段时间内被访问的次数
    ③ 修改位M:在置换页面时,如果该页未被修改,就无需将该页重写回外存,以减少系统开销和磁盘的启动次数;若被修改,则必须将该页重写到外存上,以保证外存保留的副本始终是最新的
    ④ 外存地址:用于指出该页在外存上的地址,通常是物理块号,以供调入时参考
  • 缺页中断机构
    ① 在指令执行期间产生中断和处理中断信号
    ② 一条指令执行期间可能产生多次中断
  • 地址变换机构
    在进行地址变换时,首先检索快表,试图从中找到所要访问的页面;若找到,便修改页表项中的访问位,供置换算法选出页面时参考

2.2 请求分页中的内存分配

  • 最小物理块数确定
    保证程序运行时所需的最小物理块数;若是单地址指令,采用直接寻址的方式,则所要的最小物理块数为2;一块用于存放指令的页面,另一块用于存放数据的页面;若允许间接寻址,则至少需要3个物理块。
  • 内存分配策略
    ① 固定分配局部置换策略:为进程分配一定的物理块,运行期间不再改变
    ② 可变分配全局置换策略:先为进程分配一定量的物理块,在进程运行期间,可根据实际情况做出适当的增加和减少,但是此时增加时直接从OS内存区选取出一个空闲的页,同时这个被选中的进程拥有的物理块数目减少,导致失页率增加
    ③ 可变分配局部置换策略:与②一样的策略,但是增加时只允许从当前进程所在的内存页面中调入页,这样不会影响其他的进程
  • 物理块分配算法
    ① 平均分配
    ② 按比例分配
    ③ 考虑优先权的分配算法

2.3 页面调入策略

① 何时调入页面
② 从何处调入页面
③ 页面调入过程
缺页率

3 页面置换算法

3.1 最佳置换算法

3.2 先进先出置换算法

3.3 最近最久未使用和最少使用置换算法

3.4 Clock置换算法

3.5 页面缓冲算法

4 抖动与工作集

  • 抖动:同时在系统中运行的进程太多,每个进程分配到的物理块数太少,不能满足进程的正常运行的基本要求,致使每个进程在运行时,频繁的出现换页,导致磁盘的有效访问时间也急剧增加,使得大多时间用在页面的换入和换出
  • 工作集:指在某段时间间隔里面,进程实际所要访问页面的集合
  • 抖动的预防方法:
    ① 采取局部置换策略,不影响其他进程
    ② 把工作集融入到处理机调度中
    ③ 利用L=S准则调节缺页率
    L:缺页之间的平均时间
    S:平均缺页服务时间
    ④ 选择暂停的进程:将暂停的进程调出到磁盘

5 请求分段存储管理方式

5.1 硬件支持

  • 请求段表机制
  • 缺段中断机构
  • 地址变换机构

5.2 分段的共享和保护

  • 共享段表
  • 共享段的分配与回收
  • 分段保护
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/163501?site
推荐阅读
相关标签
  

闽ICP备14008679号