系统抖动

在上一个帖子里面,我们谈及了缺页错误和解决缺页错误的方法。今天,我们来谈谈缺页错误所导致的一个重要的问题——系统抖动。

什么是系统抖动?

抖动,顾名思义,就是在一个范围内做来回反复运动。而系统抖动指的是:当cpu利用率增大到一定程度时,cpu利用率急剧下降;系统忙于缺页置换(即不断在主存和磁盘之间进行页面的换入和换出)。

系统抖动的原因?

系统抖动的主要原因是:缺页错误率高。
缺页错误率高,系统忙于页面置换,这很容易理解。由于系统一直忙于页面置换,cpu利用率低也可以理解。但为什么当cpu利用率增大到一定程度时,会引起系统抖动呢?下面我来告诉你答案!

一定程度上,运行越多的进程,cpu的利用率会上升。但如果进程的数量超过一定限度,此时每个进程被分配到的内存会很小,从而导致每个进程的缺页错误率都大大提高。而缺页错误率越高,会导致进程花费更多的时间用于页面置换(页面的换入和换出),cpu的利用率反而会下降。而这时操作系统会误以为是由于进程数量少导致的cpu利用率低,它会自动为cpu分配更多的进程,导致每个进程的内存空间更小,缺页错误率更高,cpu利用率更低,产生了恶性循环。这样就导致了系统抖动现象的出现。

因此,为了提高cpu利用率并停止抖动,必须降低多道程序程度,让每个进程分配到的内存变得更大,从而降低进程的缺页错误率。
什么是多道程序程度
一般情况下,为了使cpu总有一个作业在执行,从而提高cpu的利用率,我们会往作业池中安排尽可能多的作业(作业即进程),这种设计也称为多道程序设计。而作业池中作业的数量即多道程序程度。

如何解决系统抖动?

一种常用的方法是工作集模型。工作集模型指出:每个进程需要访问大量页面集合的时间都集中在某一个时间段;而不同的进程所集中的时间段往往不同。因此,根据工作集模型,我们又提出了局部性模型

局部性模型

不同的进程在不同的时刻处于不同的局部,工作的中心也都不尽相同。
因此可以通过在不同时刻给不同进程分配不同数量的帧,为进程分配足够的帧来适应当前的局部,进而降低进程的平均缺页错误率。

Tips

为了更好地控制进程的缺页错误率,我们可以根据进程的需求和特性,设置每个进程的缺页错误率的上下限。

  • 当实际缺页错误率超出上限时,可为进程多分配一帧;当实际缺页错误率低于下限时,可从进程中删除一帧。

好啦,本文对于系统抖动的介绍就到这里。在这里我只作了简要的介绍,如果有感兴趣的伙伴,可以去搜索相关知识仔细学习下(如果发现我有说错的地方,欢迎指正)。下一帖子我会跟大家谈谈文件系统管理的内容,亦即磁盘管理的内容。
全部评论
第一次听说系统抖动,学到了,感谢楼主
1 回复 分享
发布于 2022-08-20 17:49 陕西

相关推荐

豆泥🍀:同26届,加油,我也还没找到查看图片
点赞 评论 收藏
分享
被加薪的哈里很优秀:应该继续招人,不会给你留岗位的
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客企业服务