操作系统(第六单元)

第六章 虚拟存储管理

6.1虚拟存储器的引入

面对内存不足的解决方法
1、覆盖技术(程序参与)
2、交换技术(整体交换):可将暂时不能运行的程序放到外存。
3、虚拟存储(局部性)

覆盖技术和交换技术对比
覆盖:
(1)只能发生在没有调用关系的模块间
(2)程序员必须给出模块间关系
(3)发生在运行程序的内部模块间
交换:
(1)以进程为单位
(2)不需要模块间的逻辑覆盖结构
(3)发生在内存各进程间

局限性的表现:时间局部性 空间局部性 分支局部性

虚拟存储的定义
虚拟存储器指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器。将不常用的部分块暂存到外存。

  1. 虚拟存储器的特征:物理内存+磁盘=虚拟内存
    离散性 多次性 对换性 虚拟性
  2. 虚拟存储的技术支持:
    硬件:页式存储和段式存储中的地址转换。

操作系统:管理内存和外存间页面或段的调入或调出。

6.2请求页式存储管理

页表的扩充
页号 存储块号 状态位P 访问字段A 修改位M 外存地址
状态位P=0不在内存,产生缺页中断。

缺页中断机构
缺页中断是一种特殊的中断。
主要表现在:指令执行期间产生和处理中断信号。
一条指令执行期间,可能产生多次缺页中断。

地址变换机构
进程正常运行的最小物理块数决定因素:硬件结构 指令的格式 功能 寻址方式

分配策略:
固定分配、局部置换
可变分配、全局置换
可变分配、局部置换

请求页式存储管理的调入政策
何时调入页面:预调、请调
从何时调入:进程的所有页面放在对换区。
只将修改过的页面放在对换区,未改的放在文件区。
对换区速度比文件区快。

请求页式存储管理的页面置换算法

局部页面置换算法:
(1)置换页面的选择范围仅限于当前进程占用的物理页面。
(2)最优算法、先进先出算法、最近最久未使用算法。
(3)时钟算法、最不常用算法
页全局页面置换算法:
(1)置换页面的选择范围是所有可换出的物理页面
(2)工作集算法、缺页率算法

最佳置换算法OPT
思想:置换那些不再使用,或最长时间不使用的页
先进先出置换算法FIFO
思想:新进入内存的页被先置换出去
最近最久未使用置换算法LRU
思想:用“过去”的行为预测将来,置换那些“最近最久未使用”的页
CLOCK置换算法
最不常用置换算法LFU
思路:缺页时,置换访问次数最少的页面
LRU和LFU的区别
LRU关注多久未被访问,LFU关注访问次数,次数越多越好

全局置换算法
思路:全局置换算法为进程分配可变数目的物理页面。
工作集置换算法
思路:把不在工作集的页面换出

驻留集:即在某段时间间隔内,进程实际要访问的页面的集合。
驻留集窗口大小选择过小,频繁产生缺页中断;过大,失去了虚拟存储器的意义。
缺页率:缺页次数/内存访问次数 或 缺页平均时间间隔的倒数

影响缺页的因素
(1)页面置换算法
(2)分配给进程的物理页面数目
(3)页面大小
(4)程序的编写方法

物理块数越小,缺页率越大。
若进程缺页率过高,则增加常驻集以分配更多的物理页面;过低,则减少常驻集以减少它的物理页面数。

抖动的产生
当CPU的利用率达到某一峰值后,若继续增加多道程序度,将产生抖动。
(1)进程物理页面太少,不能包含工作集。
(2)造成大量缺页,频繁置换。

抖动的预防方法

  1. 加载控制 在处理机调度中引入工作集策略
  2. L缺页平均时间=S系统处理缺页的平均时间 准则
  3. 采用局部置换策略防止抖动扩散
  4. 挂起若干进程
    虚拟页式存储管理的性能

有效访问时间EAT=访存时间(1-p)+缺页异常时间缺页率p

6.3请求段式存储管理

段表的扩充
段号 段长 段始址 存取方式 状态位 访问字段 修改位 增补位 外存地址
缺段中断
短时虚拟存储的地址转换

动态链接
静态链接

实现动态链接对编译器的要求
当某段的指令是访问本段内的地址时,将其译成直接寻址指令。
当某段的指令是访问本段外的地址时,将其译成间接寻址指令,并将链接中断位L置1,设置链接中断处理程序。

发布了13 篇原创文章 · 获赞 0 · 访问量 519

猜你喜欢

转载自blog.csdn.net/qq_44226059/article/details/105603585