抖动与工作集
标签: 操作系统
学习人数: 16.4k

1.Belady异常

FIFO置换算法的缺页率可能会随着所分配的物理块数的增加而增加,这种奇怪的现象就是Belady异常。FIFO算法可能出现Belady异常,而 LRU算法和最佳置换算法永远不会出现Belady异常,归类为堆栈算法的页面置换算法也不可能出现Belady异常。

 

2.抖动现象

刚刚换出的页面马上又要换入主存,刚刚换入的页面马上又要换出主存,这种频繁的页面调度行为称为抖动或颠簸。

发生抖动的根本原因是,同时在系统中运行的进程太多,由此分配给每一个进程物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。使得在系统中排队等待页面调入、调出的进程数目增加。对磁盘的有效访问时间也随之急剧增加。这就会大大降低系统效率。

 

3.工作集

为了防止系统出现抖动现象,引入了工作集的概念。工作集是指在某段时间间隔内,进程需要访问的页面集合。经常被使用的页面需要在工作集中,而长期不被使用的页面要从工作集中被丢弃。无法事先预知程序在不同时刻将访问哪些页面,故仍只有像置换算法那样,用程序的过去某段时间内的行为作为程序在将来某段时间内行为的近似。

工作集是最近n次内存访问的页面的集合,数字n称为工作集窗口,也就是工作集的大小。经常被使用的页面会在工作集中,若一个页面不再使用,则它会被从工作集中丢弃。当一个进程寻址一个不在工作集内的页面时,会产生一个缺页中断。为了防止这种抖动现象,一般来说分配给进程的物理块数要大于工作集大小。

工作集模型的原理是:让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。如果还有空闲物理块,则可以再调一个进程到内存以增加多道程序的程度。如果所有工作集之和增加超过了可用物理块的数量总和,那么操作系统会选择一个内存中的进程对换到磁盘中去,将其页面调出并且将其物理块分配给其他进程,防止出现抖动现象。

正确选择工作集的大小,对存储器的利用率和系统吞吐量的提高都将产生重要影响。若窗口选得很大,进程虽不易产生缺页,但存储器也将不会得到充分利用;若窗口选得过小,则会使进程在运行过程中频繁产生缺页中断,反而降低了系统吞吐率。

 

登录查看完整内容


课后作业


登录后开始许愿

暂无评论,来抢沙发