分配算法

分配算法在採用固定分配策略時,如何將系統中可供分配的所有記憶體塊分配給各個進程,這就是分配算法需要做的事情,可以採用下述幾種算法。

(1) 平均分配算法,(2) 按比例分配算法,(3) 優先權法,

(1) 平均分配算法

這種方法是將記憶體中所有可用的記憶體塊平均分配給各個進程。例如,當系統中有100
個記憶體塊,有5 個進程在運行時,每個進程可以分得20個記憶體塊。這種方案看似公平,但
實際上是不公平的,因為其未考慮到各個進程本身的大小。如果一個進程大小為200 頁,
只分配給其20個塊,這樣,必然會有很高的缺頁率: 而另一進程只有10 頁,卻有10個物
理塊為空閒狀態。

(2) 按比例分配算法

這是根據進程的大小按比例分配記憶體塊的算法。如果系統中共有n 個進程,每個進程
的頁面數為Si,則系統中各進程頁面數的總和為:
s=Zs
又假定系統中可用的記憶體塊總數為m,則每個進程所能分到的記憶體塊數為bi,則有:
bi=(si/s)*m
當然,必須調整bi以使之成為整數且大於指令集合所需要的最小物理塊數,並使所有
物理塊數不超過m.

(3) 優先權法

在實際套用中,為了照顧到重要的、緊迫的作業能儘可能快地完成,應該為其分配較
多的記憶體空間。通常採用的方法是把記憶體中可供分配的所有記憶體塊分成兩部分:一部分按
比例分配給各個進程,而另一部分則根據各進程的優先權,適當增加其相應的份額後,分
配給各個進程。在有的系統中,如重要的實時控制系統,則可能要完全按優先權為各個進
程分配記憶體塊。

相關詞條

熱門詞條

聯絡我們