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