什么是进程的抖动 | 抖动现象

  • Post author:
  • Post category:其他








现象是指如果分配给进程的存储块数量

小于

进程所需要的

最小值

,进程的运行将会很频繁地产生

缺页中断

,这种频率非常高的页面置换现象称为






也可以说:页面在内存与外存之间频繁调度,以至于

调度页面所需时间



进程实际运行时间

还多,此时系统效率急剧下降,导致系统崩溃。这种现象称为

颠簸或抖动

虚拟技术中页面的换进换出是正常的,但是不能频繁。

——如果一个进程所调页的时间大于它所执行的时间,那么这个进程就在抖动。

我们可以通过页面置换算法从而降低缺页中断的次数。


1.最佳置换算法和先进先出置换算法:

1.1最佳(Optimal)置换算法:

通常可以保证获得最低缺页率(现实无法实现,只是理论上的算法)

思想:淘汰的页面将是以后不用或者是在最长(未来)时间内不访问的页面。

1.2先进先出(FIFO)页面置换算法:

跟据:近期调入的页面被再次访问的概率要大于早期调入的页面。

思想:选择最早调入内存的页面淘汰,即淘汰内存中驻留时间最长的页面。


2.最近最久未使用(LRU)置换算法:

跟据:局部性原理。

思想:每次选择内存中离当前时刻最久未使用过的页面淘汰。


3.最少使用(LFU)算法:

思想:每次选择最近时期是用最少的页面作为淘汰页面。

在采用该算法时,应该在内存中的每个页面设置一个移位寄存器,用来记录该页面被访问的频率。

LFU和LRU算法的页面访问图完全相同。

这种算法并不能真实反映页面的使用情况,因为无法反映每一时间间隔馁对某页面的访问次数。


4.Clock置换算法:

4.1简单的Clock置换算法(最近未使用算法NRU)

方法:队列循环搜索,访问位为0,就换出;访问位为1,就置0;

需要为每一页设置一个访问位A。

在内存中的页面链接成一个循环队列,有一个指针指向最老的页面。如上图所示。

当发生页面失效时,首先检查指针所指的页面,若他的A位是0就淘汰该页面,并把新页面插入此位置,指针向前移动一个位置到C页。

若A位是1,就清除A位,并把指针前移一个位置;重复此过程,直到找到一个A位是0的页面为止。

4.2改进型Clock置换算法:

由访问位A和修改位M可以组合成下面四种类型的页面:


1类 (A = 0, M = 0)

: 表示该页面最近既未被访问,又未被修改,是最佳淘汰页。


2类 (A = 0, M = 1)

:表示该页最近未被访问,但又被修改,并不是很好的淘汰页。


3类 (A = 1, M = 0)

:最近被访问,但未被修改,该页有可能被访问。


4类 (A = 1, M = 1)

:最近已被访问且被修改,该页可能再被访问。

5.页面缓冲算法:

5.1影响页面换进换出效率的因素:

(1)页面置换算法;

(2)读入内存的频率;

(3)写回磁盘的频率;

5.2 页面缓冲算法:

系统采用可分配局部置换策略,在内存中设置两个链表;

(1) 空闲页面链表:

未修改的页面需换出事放尾链,降低从磁盘读入内存频率。

(2) 修改页面链表:

已修改页面需要换出时放尾链,暂不写回磁盘,链表足够大时一次写回,降低写回磁盘的频率。





什么是系统抖动,系统抖动及解决方法详解 (biancheng.net)



http://c.biancheng.net/view/1280.html




版权声明:本文为m0_58667776原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。