问题 问答题

存储器管理中,产生系统颠簸的原因是什么如何消除

答案

参考答案:在请求分页系统中,通常每一个进程都只能分配到它所需要的全部内存空间中的一部分;如果进程A在运行过程中需要增加页面,它便会产生中断。在采用全局置换策略时,实际上它有可能是被分配到一个原属B进程的物理块,用来装入新调入的页。而B进程在运行中还需要该物理块,因而也会产生缺页中断,于是有可能又获得C进程的一个物理块,等等。而这些产生缺页中断的进程,可能会因页面的调入/调出而处于等待状态,从而导致就绪队列空。
通过对CPU工作情况的监督,一旦调度程序发现CPU的利用率降低时,应立即提高多道程序度,以提高CPU的利用率。为此,须引入新的进程参加运行。当新进程进入内存时,客观上又只是从其他运行进程处去获得物理块,于是又将进一步加剧进程的缺页情况,使等待页调入/调出的进程数目也随之增多。可以看出,这又将使CPU的利用率进一步下降。于是,调度程序为了提高CPU的利用率,又去引进新的进程,如此产生的恶性循环,使缺页率急剧地上升,使有效访问存储器的时间也急剧增加。换言之:使运行进程的大部分时间都用于进行页面的换入/换出,而几乎不能完成任何有效的工作。称这时的进程是处于“抖动”状态,也称系统颠簸。
CPU的利用率和多道程序度之间的关系如图3-6所示。在开始阶段,随着程序度的提高,CPU的利用率亦随之提高,并在随后达到某一峰值。此后继续增加多道程序度,将产生抖动,从而导致CPU的利用率急剧下降。
[*]
为了保证系统有较大的吞吐量,必须防止发生抖动。目前,已有多种方法防止抖动现象的产生和扩展,而这些方法的共同点都是通过调节多道程序度来实现的:
·采取局部置换策略;
·在CPU调度中引入工作集算法;
·L=S准则,用来调整多道程序度,使产生缺页的平均时间(L)等于系统处理进程缺页的平均时间(S);
·挂起若干进程。
在物理系统中,为防止抖动的产生,在进行淘汰或替换时,一般总是把缺页进程锁住不让其换出,从而防止抖动发生。防止抖动发生的另一个方法是设置较大的内存工作区。

单项选择题
单项选择题