页面置换算法

操作系统学习5

以下是局部页面算法。为什么叫局部?因为针对的是一个进程,也就是一个程序。

1、页面置换算法的功能和目标:

操作系统学习5

2、最优页面置换算法:

操作系统学习5

可以用作其他算法的性能评价依据,也就是在一个模拟器上运行某个程序,并记录每一次的页面访问情况,在第二遍运行时即可使用最优算法。理论上很难使用这个算法,但是这个算法本身是最优的,可以得到最少次数的缺页中断,所以可以尽量逼近这个最好的结果。

3、先进先出算法:

操作系统学习5

所谓Belady现象是指:采用FIFO算法时,如果对—个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象

4、最近最久未使用算法: 

操作系统学习5

操作系统学习5

5、时钟页面置换算法:

操作系统学习5

6、二次机会法

二次机会法是对Clock页面置换算法的一种改进。对于页面置换来说,如果把在硬盘中的页面放进内存中进行置换,需要巨大的开销。而对于某个页面来说,如果他只是进行过读操作,而没进行过写操作,那在对该页面进行置换时,不需要把这个页面复制回硬盘中,而只需要直接把他清除即可,因为硬盘中的该页面和内存中的该页面是一样的,没被修改过。二次机会法就是利用了这个特点。

操作系统学习5

与Clock相比,二次机会法是否对该页面进行替换要判断两个位。dirty bit 是写位,写过位1,没写过为0。这样的好处是令被改写过的页面,也就是所谓脏页有更多的机会留在内存中,而令只读的页有更多的机会被置换,而只读的页的被置换由于不需要复制,只需要清除,所以开销更小。

7、最不常用法

操作系统学习5

解决方法:定期把次数寄存器往右移一位

8、BeLady现象:是一个科学家名字,即在FIFO算法时,有时候会出现分配的物理页面数增加,缺页率反而提高的异常现象;

发生的原因:FIFO算法的置换特征与进程访问内存的动态特征是矛盾的,与置换算法的目的是不一致的(即替换较少使用的页面),因此被它置换出去的页面不一定是进程不会访问的

只有FIFO有这个现象,LRU、时钟、第二次机会等是没有这个现象的。

9、常见的页面置换算法,LRU、FIFO、Clock的比较:

LRU和Clock一定情况下都会退化成FIFO。Clock算法是对LRU算法的一种近似,也类似于FIFO,因为使用了一些硬件的bit来模拟访问时间,所以可以有效逼近LRU算法,开销还很小。

操作系统学习5

操作系统学习5

在多进程的环境中,如果每个进程都采用同样的局部置换算法,会带来问题,这就需要全局置换算法。

操作系统学习5

操作系统学习5

操作系统学习5

程序的局部性原理:程序局部性原理,是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。

局部性原理又表现为:时间局部性和空间局部性。   

时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。   

空间局部性是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。   

另外,根据程序的局部性理论,Denning提出了工作集理论。所谓工作集是指进程运行时被频繁访问的页面集合。显然我们知道只要使程序的工作集全部集中在内存中,就可以大大减少进程的缺页次数;否则会使进程在运行过程中频繁出现缺页中断,从而出现频繁的页面调入/调出现象,造成系统性能的下降,甚至出现“抖动”。   

划分工作集可以按定长时间或定长页面两种方法进行划分。当颠簸现象发生时,说明系统的负荷过大,通常采用处理器均衡调度。另一种是控制缺页率,当缺页率达到上限时,则增加内存分配量;当缺页率达到下限时,就减少内存的分配量。

除了工作集外,还有个概念常驻集。为了令缺页的次数比较小,我们希望这两个集合是尽量重叠的。

操作系统学习5

10、全局页面置换算法有两个:

(1)工作集页置换算法:大致思想是,随着程序的执行,工作集窗口在移动,如果某页不在时间窗口内,就丢掉,而不是缺页才丢掉

(2)缺页率页面置换算法:

操作系统学习5

操作系统学习5 

操作系统学习5

11、抖动问题

操作系统学习5

解决的方法是什么?解决的方法是:

操作系统学习5

我们希望达到的目标是,调整Multiprogramming Level,使得MTBF/PFST尽量为1,同时CPU的利用率也较高,这样的话CPU大部分的时间都用在执行程序上,而不是用于页面置换。

相关文章:

  • 2021-12-26
  • 2021-05-31
  • 2021-07-22
  • 2022-01-06
  • 2021-05-23
  • 2021-08-31
  • 2021-11-07
  • 2021-04-28
猜你喜欢
  • 2021-07-19
  • 2021-08-16
  • 2021-10-05
  • 2021-12-05
  • 2021-11-02
  • 2021-06-05
相关资源
相似解决方案