局部性原理

一个程序的执行往往呈现出局部性规律,即在一段较短时间内,程序的执行仅局限于某个部分,它所访问的存储空间也局限于某个区域。
局限性表现在时间与空间两方面:

  • 时间局限性
    如果程序中的某条指令一旦执行, 则不久以后该指令可能再次执行;如果某数据被访问过, 则不久以后该数据可能再次被访问,典型原因是由于程序中循环操作。

  • 空间局限性
    一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,典型原因是程序的顺序执行。

虚拟存储器定义及特征

定义

具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统。
其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
虚拟存储技术是一种性能非常优越的存储器管理技术,故被广泛地应用于大、 中、 小型机器和微型机中。

特征

多次性 :一个作业被分成多次调入内存运行;
对换性 : 允许在作业的运行过程中换出,换进 ;
虚拟性 :指从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。

虚拟存储器的实现硬件支持是什么?

请求分页系统

置换是以页为单位进行

硬件支持

页表

缺页中断机构

  • 在地址映射过程中,在页表中发现所要访问的页不在内存,则产生缺页中断;
  • 操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,将该页调入内存;
  • 如果内存中有空闲块,则分配一页,将新调入页装入内存,并修改页表中相应页表项目的状态位及相应的物理块号;
  • 若此时内存中没有空闲块,则要淘汰某页,若该页在内存期间被修改过,则要将其写回外存。

地址变换机构

软件支持

请求调页
进程运行装入部分页面;之后根据进程运行需要,动态装入其它页面。

页面置换
当内存空间已满,需要装入新的页面时,则根据某种算法淘汰某个页面;装入新的页面。

请求分段系统

置换是以段为单位进行

硬件支持

  • 段表
  • 缺段中断机构
  • 地址变换机构

软件支持

请求调段,分段置换

缺页中断与一般中断的区别是什么?

相同点

  • 需要保护CPU环境
  • 分析中断原因
  • 转入缺页中断处理程序
  • 恢复CPU环境。

不同点

  • CPU都是在一条指令执行完后,才检查是否有中断请求到达;缺页中断是在指令执行期间产生和处理中断信号。
  • 一条指令在执行期间可能产生多次缺页中断。

什么是抖动现象?产生抖动的原因是什么?

即刚被换出的页很快又要被访问,需要将它重新调入,此时又需要再选一页调出。而此刚被调出的页很快又被访问,又需将它调入,如此频繁更换页面,以致一个进程在运行中把大部分时间都花费在页面置换上,我们称该进程发生了“抖动” 。

现象

请求分页系统中,页面在内存与外存之间频繁调度,处理器花费大量的时间用于对换页面而不是执行计算任务的现象。
发生抖动现象后,系统效率急剧下降,甚至导致系统崩溃。

原因

  • 页面置换算法不合理
  • 分配给进程的物理页面数太少

页面置换算法

最佳置换 OPT

算法选择的被淘汰页面:将是以后永不使用的或是在最长(未来)时间内不再被访问的页面。通常可保证获得最低的缺页率

先进先出 FIFO

该算法淘汰最先进入内存的页面(或驻留内存最久的页面)

最近最久未使用 LRU

选择最后一次访问时间距离当前时间最长的一页(最近最久未使用)并淘汰之,即淘汰最近最久未使用的页。

缺页中断次数

缺页率 = 缺页中断次数/访问页面总数

页面置换次数

置换率=页面置换次数/访问页面总数

物理块分配算法

平均分配算法
按比例分配算法
考虑优先权的分配算法