系统颠簸

如果低优先级的进程所分配的帧的数量少于计算机体系结构所要求的最少数量(其实就是进程完成工作执行的帧的数量),那么必须就要去暂停进程的执行。因为如果进程没有它所需要的活跃使用的帧,那么它会很快产生页错误,这个时候它必须置换某个页,然而,其他所有的页都在使用,它置换一个页,但又立刻再次需要这个页,因此,它就会一而再地去产生页错误,置换一个页,而该页又立即出错且需要立即调进来

这种频繁的页调度行为就叫做颠簸,如果一个进程在换页上用的时间要多于执行时间,那么这个进程就在颠簸

在早期调页系统中,操作系统在监视CPU的使用率,如果CPU的使用率太低了,那么就会向系统当中去引入新的进程,以此增加多道程序的程度,采用全局置换算法,它会置换页而不管这些页是属于哪个进程的

假设一个进程进入一个新的执行阶段,需要更多的帧,它开始出现页错误,并且从其他进程当中拿到帧,然而,这些进程也需要这些页,所以它们也是会出现页错误,从而可以从其他进程当中去拿到帧,这些页错误进程必须使用调页设备进行换出和换入页,随着它们的排队等待换页设备,这样的话就绪设备就会变空,而进程等待调页设备,CPU使用率就会降低

当CPU调度程序发现了CPU使用率降低了,就会增加多道程序的程度,新进程试图从其他进程当中拿到帧,从而引起更多的页错误,形成更加长的调页设备的队列,因此CPU的使用率进一步降低,CPU调度程序试图再增加多道程序的程度,这样就造成了系统颠簸,系统吞吐量降低,而错误显著增加了,因此有效内存访问时间增加,最终由于因为进程主要忙于调页,系统就不能完成一件工作

利用局部置换算法可以限制系统的颠簸,采用局部置换,如果一个进程开始颠簸,那么它就不能从其他进程拿到帧,且不能使后者也发生颠簸

在这里简单的介绍下全局置换和局部置换,全局置换就是允许一个进程从所有帧的集合当中选择一个置换帧,而不管该帧是否已分配给其他进程,即一个进程可以从另一个进程拿到帧。局部置换要求每个进程仅仅从其自己的分配帧中进行选择

为了防止颠簸,还有方法就是使用工作集合模型策略和采用也错误频率策略

关于工作集合模型就是,我们需要去确定这个窗口的大小,一旦确定了它的大小,那么工作集合模型的使用就较为简单了,操作系统跟踪每个进程的工作集合,并且为进程分配了大于其工作集合之和的帧数,如果还有空闲帧那么久启动另一个进程,如果所有工作集合之和超过了可用帧的总数,那么操作系统就会选择暂停一个进程,该进程的页被写出,并且这个进程的帧可以分配给其他进程,挂起的进程可以在之后重启

关于页错误频率策略就是,如果颠簸有较高的页错误率,那么就需要去控制页错误率,当页错误率较高的时候,进程需要更多的帧。如果页错误率太低,那么进程可能有太多的帧,可以为所期望的页错误率设置上限和下限,如果实际的页错误率超过上限,那么进程分配更多的帧,如果实际页错误率低于下限,那么可从该进程当中移走帧,因此可以直接测量和控制页错误率以防止颠簸

和工作测量一样,必须去暂停一个进程,如果页错误增加且没有可用的帧,那么必须选择一个进程暂停,接着,可将释放的帧分配给其他具有高页错误率的进程

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值