目录
虚拟内存
虚拟存储器及其特征
由操作系统提供的一个假想的特大存储器,是操作系统采用内外村交换技术在逻辑上提供对内存的扩充。
- 离散型(最基本特征):内存分配采用离散分配方式
- 虚拟性(最重要特征):虚存式从逻辑上扩充容量,使用户变成所用到的地址空间远大于实际的内存容量
- 多次性:多次性是指内存不是一次性装入内存,而是被分为若干部分,分多次调入内存
- 对换性:是指系统允许进程的部分在运行过程中换入内存或者换出到对换区。对换过程在进程运行期间可发生多次。
虚存基于局部性原理:时间局部性和空间局部性(顺序局部性)
请求分页管理费方式:请求分页系统:基本分页系统+请求调页功能+页面置换算法
最佳置换算法OPT
内存中选择未来永远不再需要的页面或者需要最长的时间才去访问的页面予以淘汰(缺页率最低)
例:假设系统为某进程分配了3个物理块,考虑页面走向为:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
– | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
块1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 7 | 7 | 3 | 3 | 3 | 3 | 3 | 3 | |
块2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | ||
块3 | 3 | 4 | 4 | 4 | 5 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 1 | 1 | 1 | 1 | |||
缺页否 | v | v | v | v | v | v | v | v | v | v | v |
缺页中断次数11次,页面置换次数8次,缺页率11/20=55%,命中率100-55=45%
最久未用算法LRU
置换最久未使用物理块
先进先出置换算法FIFO
把内存中驻留时间最长的淘汰
– | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
块1 | 1 | 1 | 1 | 4 | 4 | 4 | 4 | 6 | 6 | 6 | 6 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 6 |
块2 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 7 | 7 | 7 | 7 | 1 | 1 | 1 | 1 | |
块3 | 3 | 3 | 3 | 3 | 5 | 5 | 5 | 1 | 1 | 1 | 1 | 6 | 6 | 6 | 6 | 6 | 3 | 3 | ||
缺页否 | v | v | v | v | v | v | v | v | v | v | v | v | v | v | v | v |
请求分页管理方式中的有效时间计算法
graph TB
A[开始]-->B[查快表]
B[查快表e]-->C{在快表内?}
C-->|命中a|D[形成物理地址访问内存t]
D-->结束
C-->|未命中1-a|E[查找页表t]
E-->F{在页表中吗?}
F-->|在f|G[修改快表e]
G-->D
F-->|不在1-f|H[产生缺页中断调入内存t1]
H-->B
EAT=e+at+(1-e)[t+f(t1+e+t)+(1-f)(e+t)]
页面置换时间可能会分为修改和不修改
时钟置换算法
若循环列表存在当前访问页时将访问页改为1,指针P不移动,否则若当前指针指向页面的访问位为0则淘汰该页,调入新页将访问位改为1,指针P移到下一个物理块,若当前P指针指向页面的访问位为1,则改为0,P移到下一个物理块
- 空位写入丙改标识位为1,P后移
- 非空且存在访问页则改其标识位为1,P不动
- 非空且不存在则检查P所在访问页标识位,若为1则改成0P后移,若为0则覆盖后改为1P后移
例题:假设系统为某进程分配了3个物理块,考虑页面走向:7,0,1,2,0,3,0,4
访问页面 | 初始 | 7 | 0 | 1 | 2 | 0 | 3 | 3 | 0 | 4 |
---|---|---|---|---|---|---|---|---|---|---|
物理块0 | P 0 | 7 1 | 7 1 | P71 | 2 1 | 2 1 | P21 | P21 | 4 1 | |
物理块1 | 0 | P 0 | 0 1 | 0 1 | p00 | p01 | 0 0 | 0 1 | p00 | |
物理块2 | 0 | 0 | P 0 | 1 1 | 1 0 | 1 0 | 3 1 | 3 1 | 3 0 | |
缺页否 | v | v | v | v | v | V |
Belady现象
缺页率会随着分配的物理块数增加而增加(FIFO算法可能会出现123412512345)
抖动现象
系统不断出现缺页中断,反复出现页面置换和页面调入的现象
静态重定位
地址变换通畅是在装入内存时一次完成的
动态重定位
装入程序再把装入模块装入内存后,并不立即把装入模块的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。(需要重定位寄存器支持)
一些问答
虚拟存储器的最大容量是由计算机的地址结构决定的,可以运行大于实际内存大小的作业。
虚拟技术是以时间换空间的技术
请求分页存储管理方式和基本分页存储管理方式的区别:
- 不必将作业全部装入内存。
- 前者是虚拟存储器采用技术,后者不是
处理器有32位地址,则虚拟地址空间为4GB字节
2^{32}=2^{30}x2^2=4GB
2^{10}KB
2^{20}MB
2^{30}GB
给定页大小和十六进制地址时可用二进制(4B=16位字符)换算前几位则是页号后几页大小位数是存储内容
求物理地址也可以只把前几位2进制数字页号换了即可,页偏移部分不变