第5章 虚拟储存器
5.1 虚拟储存器概述
虚拟储存技术:从逻辑上扩充内存容量
5.1.1 常规存储管理方式的特征和局部性原理
- 一次性:作业必须一次性全部装入内存后才能开始运行。
- 驻留性:直到完成前,一直驻留在内存中,直到作业运行结束
- 局部性原理:程序运行时是局部的
5.1.2 虚拟存储器的定义和特征
覆盖技术
把程序化分为若干个功能上相对独立的程序段。
不会同时执行的程序段共享同一块内存区域。
虚拟存储器的特征
-
多次性
一个作业中的程序和数据无需在作业运行时一次性的全部装入内存,而是允许被分成多次调入内存运行。 -
对换性
一个作业中的程序和数据,无须在作业运行时一直常驻内存,而是允许在作业的运行过程中进行换进,换出。 -
虚拟性
从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。
5.1.3 虚拟存储器的实现方法
请求分页系统
请求分页系统:
在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储器。
请求分段系统
在分段系统的基础上增加了请求调段和分段置换功能所形成的段式虚拟存储器。
5.2 页面的调入
5.2.3 页面调入策略
- 缺页率:
如果进程在运行过程中,访问页面失败次数为F,总的页面访问次数为A.
缺页律为 f = F / A f=F/A f=F/A
5.3 页面置换算法
最佳置换算法(OPT)
- 定义
所选择的被淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面。
先进先出置换算法(FIFO)
最早出现的置换算法。
- 定义
总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。
最近最久未使用置换算法(LRU)
- 定义
选择最近最久未使用的页面予以淘汰。
Clock置换算法
定义
- 为每页设置一位访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。
- 循环的检查各页面的使用情况。
- 置换时将未使用过的页面换出去。
也称为最近未使用置换算法(NRU)。
步骤(时钟置换算法)
- 首次装入内存时:
其“引用位”置0, 有装入,指针下移。- 命中时: 一个页面被访问时,“引用位”置1,指针不动。
- 缺页时:扫描循环队列
引用位为1:置0;指针下移
引用位为0:淘汰该页面;换入新页面;指针下移
循环一圈后引用位全为1:全部置0;指针不动;淘汰该页面;换入新页面;指针下移
作业
作业1:
- OPT
- FIFO
- Clock置换算法
∗ * ∗表示相应页面的”引用位”为1
第6章
6.6.2 假脱机(Spooling)系统
多道程序设计系统中处理独占I/O设备的一种方法,又称为假脱机技术。
特点
- 提高了I/O的速度
- 将独占设备改造为共享设备
- 实现了虚拟设备功能
6.7 缓冲的引入
定义
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
- 解决数据粒度不匹配的问题
- 提高CPU和I/O设备之间的并行性
6.7.1 单缓冲区(SB)
T和C是可以并行的
6.7.2 双缓冲区(DB)
实现T与MC的并行
6.8 磁盘存储器的性能和调度
6.8.1 磁盘性能简述
磁盘磁道号内圈大,外圈小
作业:
当前磁头在100号磁道上,并正由外往里移动。
方向:由低向高
6.8.1 先来先服务算法(FCFS)
调度:根据进程访问磁盘的先后次序进行
6.8.1 最短寻道时间优先算法(SSTF)
调度:选择的进程要求访问的磁道与当前磁头所在的磁道距离最近
6.8.1 扫描算法(SCAN)
调度:优先考虑欲磁头当前的移动方向,再考虑访问的磁道与当前磁道的距离。直到该方向上无磁道需要访问时,磁臂换向。
6.8.1 循环扫描算法(CSCAN)
调度:在扫描算法的基础上,规定磁头单向移动
作业: