文章目录
- 【第六章】虚拟存储器
- | 本章概念
- 1.虚拟存储器概述
- 2.请求分页存储管理方式基本概念
- 3.页面置换算法的相关概念
- 4.请求分段存储管理方式基本概念
- | 本章算法
- 1.分页存储管理的有关计算公式
- 2.请求分页系统访问内存的有效时间EAT
- 3.已知逻辑地址、页大小、页表;求物理地址
- 4.页面置换算法
- 5.请求分段存储管理方式 地址变换
- | 课后简答题
【第六章】虚拟存储器
| 本章概念
1.虚拟存储器概述
- 前面基础存储器的缺点
- 有一个共同特点:作业全部装入内存后方能运行
- 常规存储器管理方式的特征:一次性:作业被一次性全部装入内存;驻留性:作业一直驻留在内存
- 一次性和驻留性使许多在程序运行中不用或暂不用的程序(数据)占据了 大量的内存空间,使得一些需要运行的作业无法装入运行。
- 如何解决【大作业装不下、少量作业得以运行】的问题?解决办法:扩充内存、逻辑上扩充内存容量(虚拟存储器)
- 虚拟存储器的定义
- 应用程序在运行之前,没有必要全部装入内存,仅须将 那些当前要运行的部分页面或段先装入内存便可运行
- 具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
- 其运行速度接近于内存速度,而成本接近于外存
- 虚拟存储器的特征
- 多次性:作业中的程序和数据允许被分成多次调入内存允许
- 对换性:作业运行时无须常驻内存
- 虚拟性:从逻辑上扩充了内存容量,使用户看到的内存容量远大于实 际内存容量
- 虚拟存储器的实现方法
- 请求分页系统
- 请求分段系统
- 段页式虚拟存储器
2.请求分页存储管理方式基本概念
- 最小物理块数的确定:保证进程正常运行所需的最小物理块数。取决于指令的格式、功能和寻址方式。
- 平均分配算法;
- 按比例分配算法; 各进程页面总和 S = ΣSi 每个进程所能分到的物理块数 bi = Si / S * m
- 考虑优先权的分配算法;
- 页面调入策略:
- 何时调入页面?预调页策略、请求调页策略
- 从何处调入页面?
- 如何调入页面?查找所需页在磁盘上的位置、查找一内存空闲块、将所需页读入新空闲块然后更新页表、重启用户进程
- 缺页率的计算:
- S:访问页面成功次数
- F:访问页面失败次数
- A : 总访问次数 = S+F
- 缺页率 = F/A
- 缺页中断处理时间:
- β:被置换的页面被修改的概率
- ta:被置换页面被 修改的缺页中断处理时间
- tb:被置换页面没有被修改的缺页中断时间
- 缺页中断处理的时间 = β * ta + (1-β)*tb
3.页面置换算法的相关概念
- 页面置换:找到内存中没有使用的一些页,换出
- 性能的关键点 :找出一个导致最小缺页数的算法
- 同一个页可能会被装入内存多次(可能造成“抖动”)
- 页面置换完善了逻辑内存和物理内存的划分——在一个较小的物理 内存基础之上可以提供一个大的虚拟内存
- 常见的页面置换算法:最佳置换算法 OPT 、先进先出置换算法 FIFO 、最近最久未使用算法 LRU 、最少使用算法 LFU、Clock置换算法、页面缓冲算法
- 目的:尽可能小的缺页率
4.请求分段存储管理方式基本概念
- 在分页基础上建立的请求分页式虚拟存储器系统,是以页面为单位进行换出 / 换入的。而在分段基础上所建立的请求分段式虚拟存储器系统,则是以分段为单位进行换入 / 换出的
- 请求分段中的硬件支持
- 请求段表机制
- 缺段中断机构:在指令执行期间产生和处理中断信号。一条指令在执行期间,可能产 生多次缺段中断。由于段不是定长的,因此中断处理比缺页中断复杂
- 地址变换机构:若段不在内存中,则必须先将 所缺的段调入内存,并修改段表,然后利用段表进行地址变换。
- 分段保护:
- 越界检查:比较段号与段表长度;段内地址与段表长度
- 存取控制检查:以段为基本单位进行
- 环保护机构
| 本章算法
1.分页存储管理的有关计算公式
最小物理块的数量计算公式
按比例分配算法; 各进程页面总和 S = ΣSi 每个进程所能分到的物理块数 bi = Si / S * m
缺页率的计算
- S:访问页面成功次数
- F:访问页面失败次数
- A : 总访问次数 = S+F
- 缺页率 = F/A
缺页中断处理时间的计算
- β:被置换的页面被修改的概率
- ta:被置换页面被 修改的缺页中断处理时间
- tb:被置换页面没有被修改的缺页中断时间
- 缺页中断处理的时间 = β * ta + (1-β)*tb
2.请求分页系统访问内存的有效时间EAT
λ:为查找快表所需要的时间
t:为访问一次内存所需要的时间
访问页在内存,且其对应页表项在快表中 EAT= λ + t
访问页在内存,但其对应页表项不在快表中 EAT= λ + t + λ + t = 2(λ + t)
t:为访问一次内存所需要的时间
φ:缺页中断处理时间
f:缺页率
访问页不在内存中:需进行缺页中断处理,有效时间可分为查找快表的时间、查找页表的时间、 处理缺页的时间、更新快表的时间和访问实际物理地址的时间
EAT = t + f ×(φ + t) + (1- f) × t
区别于【第五章:存储器管理】的【引入快表后的有效访问时间】计算公式
这个是请求调页系统,第五章那个是分页存储系统
3.已知逻辑地址、页大小、页表;求物理地址
①把逻辑地址转为二进制(如101(8) → 001 000 001)
②根据页大小计算出页的地址结构(如一页32B,2^5=32 因此低5位为页内地址,其余页为页号)
③由①的二进制,结合②的地址结构,可以得出【页号、页内地址】(如001 000 001,低5位为页内地址,则该二进制表示第2页,页内第1位)
④查表,若查得到则OK;若查不到则表示该逻辑地址不能转换
4.页面置换算法
最佳页面置换算法 OPT
- 被置换的页将是之后最长时间不被使用的页。是一种理想算法,永远不可能实现
先进先出置换算法 FIFO
- 总是淘汰最先进入内存的页面
最近最久未使用算法 LRU
- 选择最近最久未使用的页面予以淘汰
- 硬件支持:被访问的页面对应寄存器的Rn-1位置为1,定时右移
- 具有最小数值的寄存器所对应的页面为淘汰页
最少使用算法 LFU(了解)
- 选择在最近时期使用最少的页面作为淘汰页。(如果一个数据在最近一段时间很少被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最小频率访问的数据最先被淘汰;当存在两个或者更多个键具有相同的使用频次时,应该淘汰最久未使用的数据。(即此时为 LRU)
- 为内存中的每个页面设置 一个移位寄存器,用来记 录该页面的被访问频率
Clock置换算法(了解)
LRU的近似算法,又称最近未用(NRU)或二次机会页面置换算法
每个页都与一个访问位相关联,初始值位0,当页被访问时置访问位为1,置换时选择访问位为0的页 ;若为1,重新置为0
页面缓冲算法(了解)设置两个链表:
- ①空闲页面链表:保存空闲物理块
- ②修改页面链表:保存已修改且需要被换出的页面,等被换出的页面数目达到一定值时,再一起换出外存
5.请求分段存储管理方式 地址变换
作业最多可拥有的段数 = 2 ^ 虚拟地址中【段号】的位数
作业最多可拥有的长度字节 = 2 ^ 虚拟地址中【段内相对地址】的位数
已知段号和段内地址,如何进行地址变换?
① 找到段号对应的段长 L 和主存起始地址 S
② 若段表中段号所对应的段长 < 所给的段内地址 则说明产生了越界中断,无法转换
若段表中段号对应的段长 ≥ 所给的段内地址, 则逻辑地址对应的主存地址为【主存起始地址 + 段内地址】
| 课后简答题
1.常规存储器管理方式具有哪两大特征” />
10.为了实现请求分段存储管理,应在系统中增加配置哪些硬件机构?
为了实现请求分段存储管理,应在系统中配置多种硬件机构以支持快速完成请求分段功能。
所需的硬件支持有段表机制、缺段中断机构以及地址转换机构。