6.1 虚拟存储器概述
虚拟存储器:具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统;
基于局部性原理,应用程序在运行之前,没有必要全部装入内存,仅须将当前要运行的部分页面或段先装入内存便可运行,其余部分暂留在盘上。
其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近内存速度,而成本接近外存。
虚拟存储器的特征:
①多次性:作业中的程序和数据允许被多次调入内存允许
②对换性:作业运行时无需常驻内存
③虚拟性:从逻辑上扩充了内存容量,使用户看到的内存远大于实际内存容量。
6.2 请求分页存储管理方式
页面调入方法:
①查找所需页所在磁盘上的位置
②查找一内存空闲块:
如果有空闲块,就直接使用它
如果没有空闲块,使用页面置换算法选择一个牺牲内存块;
若牺牲块的内容被修改过,则写回磁盘,更新页表和物理块表
③将所需页读入新空闲块,更新页表。
④恢复用户进程的执行。
6.3 页面置换算法
(1)最佳置换算法(OPT)
(2)先进先出置换算法(FIFO)
(3)最近最久未使用算法(LRU)
(4)Clock置换算法
6.4 抖动与工作集
如果一个进程没有足够的页框,那么缺页率将很高,这将导致:
①CPU利用率低下
②操作系统认为需要增加多道程序设计的道数
③系统中将加入一个新的进程
抖动:每个进程大部分事件都用于页面的换入换出,导致CPU利用率急剧下降而趋于零。
(1)产生“抖动”的原因
根本原因:①同时在系统中运行的进程太多
②因此分配给每一个进程的物理块太少,不能满足进程运行的基本要求,致使进程在运行时,频繁缺页,必须请求系统将所缺页面调入内存
抖动的发生与系统为进程分配物理块的多少有关
抖动的预防方法:
6.5 请求分段存储管理方式
(1)请求分段的硬件支持
(2)分段的共享
(3)分段保护