局部性原理
一个程序的执行往往呈现出局部性规律,即在一段较短时间内,程序的执行仅局限于某个部分,它所访问的存储空间也局限于某个区域。
局限性表现在时间与空间两方面:
时间局限性
如果程序中的某条指令一旦执行, 则不久以后该指令可能再次执行;如果某数据被访问过, 则不久以后该数据可能再次被访问,典型原因是由于程序中循环操作。空间局限性
一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,典型原因是程序的顺序执行。
虚拟存储器定义及特征
定义
具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统。
其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
虚拟存储技术是一种性能非常优越的存储器管理技术,故被广泛地应用于大、 中、 小型机器和微型机中。
特征
多次性 :一个作业被分成多次调入内存运行;
对换性 : 允许在作业的运行过程中换出,换进 ;
虚拟性 :指从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。
虚拟存储器的实现硬件支持是什么?
请求分页系统
置换是以页为单位进行
硬件支持
页表
缺页中断机构
- 在地址映射过程中,在页表中发现所要访问的页不在内存,则产生缺页中断;
- 操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,将该页调入内存;
- 如果内存中有空闲块,则分配一页,将新调入页装入内存,并修改页表中相应页表项目的状态位及相应的物理块号;
- 若此时内存中没有空闲块,则要淘汰某页,若该页在内存期间被修改过,则要将其写回外存。
地址变换机构
软件支持
请求调页
进程运行装入部分页面;之后根据进程运行需要,动态装入其它页面。
页面置换
当内存空间已满,需要装入新的页面时,则根据某种算法淘汰某个页面;装入新的页面。
请求分段系统
置换是以段为单位进行
硬件支持
- 段表
- 缺段中断机构
- 地址变换机构
软件支持
请求调段,分段置换
缺页中断与一般中断的区别是什么?
相同点
- 需要保护CPU环境
- 分析中断原因
- 转入缺页中断处理程序
- 恢复CPU环境。
不同点
- CPU都是在一条指令执行完后,才检查是否有中断请求到达;缺页中断是在指令执行期间产生和处理中断信号。
- 一条指令在执行期间可能产生多次缺页中断。
什么是抖动现象?产生抖动的原因是什么?
即刚被换出的页很快又要被访问,需要将它重新调入,此时又需要再选一页调出。而此刚被调出的页很快又被访问,又需将它调入,如此频繁更换页面,以致一个进程在运行中把大部分时间都花费在页面置换上,我们称该进程发生了“抖动” 。
现象
请求分页系统中,页面在内存与外存之间频繁调度,处理器花费大量的时间用于对换页面而不是执行计算任务的现象。
发生抖动现象后,系统效率急剧下降,甚至导致系统崩溃。
原因
- 页面置换算法不合理
- 分配给进程的物理页面数太少
页面置换算法
最佳置换 OPT
算法选择的被淘汰页面:将是以后永不使用的或是在最长(未来)时间内不再被访问的页面。通常可保证获得最低的缺页率
先进先出 FIFO
该算法淘汰最先进入内存的页面(或驻留内存最久的页面)
最近最久未使用 LRU
选择最后一次访问时间距离当前时间最长的一页(最近最久未使用)并淘汰之,即淘汰最近最久未使用的页。
缺页中断次数
缺页率 = 缺页中断次数/访问页面总数
页面置换次数
置换率=页面置换次数/访问页面总数
物理块分配算法
平均分配算法
按比例分配算法
考虑优先权的分配算法