下面我们来讨论负载控制
那在我们前面掌握的局部置换算法
和全局置换算法呢
都涉及到一个问题
说我这一个系统里到底有多少个
并发执行的进程在一起执行
对于系统来说它的效率是最高的
那这实际上呢就是我们这里说到的
抖动和负载控制
那首先第一个什么是抖动
抖动是指说我系统里头的
进程数目太多
那每个进程的分配到的页面呢
就减少了 减少到一定程度
它不能包括它的工作集
那这时候呢它就会花大量的时间
去进行缺页处理
那这个缺页处理增大到一定程度
在我这个CPU的执行时间里头呢
就占到比较大的比例了
好 那这时候最后的结果就是
你的进程的运行速度变慢
那对于这种情况呢我们怎么来处理呢
在处理之前我们需要
首先分析清楚它是什么原因
那实际上在这个现象里头
已经说的很清楚了
就是驻留在内存里的数目太多
那太少这个系统的并发性不好
太多那你的效率降低
那我们需要在这里找到一个折中点
那这个折中点呢就是在于
我需要去考虑我到底是多少合适
同时还有一个问题就是
每个进程的页面是多少合适
那各个进程之间也有差异
所以这件事情综合起来控制呢
是比较复杂的
对于我们操作系统来说呢
我们希望达到的目标是在并发
和缺页率之间呢达到一个平衡
那说起来的话这个平衡比较清楚
但实际上做起来呢 它是很难的
那我们需要选择到底有多少个进程
以及在每个进程
又给它多少物理页面
那在这儿呢
这个问题的深入讨论
我们时间很有限
我们只能做一个初步的描述
那所谓的初步描述就是
控制这个并发进程数
每个进程的页面多少呢
就靠置换算法来确定
那我们在这里呢
首先第一个我控制每个工作集的大小
好 我希望整个内存的总量
是当前运行的各个进程的
工作集的总和
这时候呢 可以和我们前面说的
这个并发性和CPU利用效率之间的
这条曲线来说明
到什么时候这两个是相等的呢
到这个位置
也就是说增加到一定程度
你再增加的时候
效率提高就会开始到达顶点了
但是这个地方呢我们比较难考察
那我们怎么来考察呢
实际上我们利用第二条 我缺页之后
有一个缺页出现的平均间隔
然后还有一个呢是缺页处理的时间
这两个构成一个比例
如果说你这个间隔大于处理时间
那这时候我的处理是来得及完成的
就在这个点之前
如果说我这个间隔
小于你的处理时间
那你基本上就满负荷的去做处理
还忙不过来了 对于这种情况
就已经到了这条线的底下了
好 我们希望在这里头呢
它是在这条线的前面
如果做到这一点
那这样的话我们选择这个区域
就是负载均衡的一个平衡点
那我们能找到的平衡点
是在中间这段区域里头
好 到这个地方呢我们说清楚了
置换算法分成局部置换算法
我们如何能够从最优的
局部置换算法去对它做简化 做近似
然后再讨论到全局置换算法
全局置换算法里头也是由工作集
到缺页率算法
也是对它的一种近似和简化
最终我们达到的目标是
让整个系统处于均衡的繁忙状态
也就是达到负载控制里头的终极目标
好 今天的课就上到这里 下课