四、页框分配和颠簸
页框分配
也称帧分配,就是研究如何为各个进程分配一定的空闲内存。
如:现有93个空闲页框和2个进程,那么每个进程各得到多少页框?
页框分配会受到多方面的限制,例如,所分配的页框不能超过可用页框的数量,也必须分配至少最少的页框数,即每个进程所需要的最少的页框数。
分配至少最少的页框数的原因之一是性能。当指令完成之前出现缺页中断时,该指令必须重新执行,因此,必须有足够的页框来容纳所有单个指令所引用的页。
必须满足:每个进程所需要最少的页数
例子:IBM370-6处理SS MOVE指令:
- 指令是6个字节,可能跨越2页
- 2页处理from
- 2页处理to
两个主要的分配策略:
- 固定分配
- 优先级分配
固定分配
为每个进程分配固定数量的页框数,有两种分配方式:平均分配和按比率分配。
平均分配——均分法
例:如果有100个页框,和5个进程,则每个进程分给20个页
按比率分配——根据每个进程的大小来分配
优先级分配
根据优先级而不是进程大小来使用比率分配策略。
如果进程Pi产生一个缺页
- 选择替换其中的一个页框
- 从一个较低优先级的进程中选择一个页面来替换
全局置换和局部置换
影响页框分配的另一个因素是页框置换。当有多个进程竞争页框时,页面置换算法可分为两大类:全局置换和局部置换。
- 全局置换——进程在所有的页框中选择一个替换页面;一个进程可以从另一个进程中获得页框。一个问题是进程不能控制缺页率。
- 局部置换——每个进程只从属于它自己的页框中选择。不能使用其他进程的不常用内存,所以会阻碍一个进程。
全局置换通常有更好的系统吞吐量且更为常用。
颠簸
当一个进程没有足够的页框,那么它很快产生缺页。然而,其所有页都在使用,它置换了一个页,但又立刻再次需要这个页。因此,会一而再地产生缺页中断,换出一个页,该页又立即需要换入。这种情况称为颠簸。
如果一个进程没有足够的页,那么缺页率将很高,这将导致:
- CPU利用率低下.
- 操作系统认为需要增加多道程序的道数
- 系统中将加入一个新的进程
颠簸(抖动)=一个进程的页面经常换入换出
该图显示了CPU利用率与多道程序设计的道数之间的关系。初始时,道数增加,CPU利用率增加,直到达到最大值,如果此时道数还要继续增加,则开始系统颠簸,CPU利用率急剧下降,此时,为了增加CPU利用率和降低系统颠簸,必须降低多道程序的道数。