分配算法在採用固定分配策略時,如何將系統中可供分配的所有記憶體塊分配給各個進程,這就是分配算法需要做的事情,可以採用下述幾種算法。
(1) 平均分配算法
個記憶體塊,有5 個進程在運行時,每個進程可以分得20個記憶體塊。這種方案看似公平,但
實際上是不公平的,因為其未考慮到各個進程本身的大小。如果一個進程大小為200 頁,
只分配給其20個塊,這樣,必然會有很高的缺頁率: 而另一進程只有10 頁,卻有10個物
理塊為空閒狀態。
(2) 按比例分配算法
的頁面數為Si,則系統中各進程頁面數的總和為:
s=Zs
又假定系統中可用的記憶體塊總數為m,則每個進程所能分到的記憶體塊數為bi,則有:
bi=(si/s)*m
當然,必須調整bi以使之成為整數且大於指令集合所需要的最小物理塊數,並使所有
物理塊數不超過m.
(3) 優先權法
多的記憶體空間。通常採用的方法是把記憶體中可供分配的所有記憶體塊分成兩部分:一部分按
比例分配給各個進程,而另一部分則根據各進程的優先權,適當增加其相應的份額後,分
配給各個進程。在有的系統中,如重要的實時控制系統,則可能要完全按優先權為各個進
程分配記憶體塊。