記憶體管理之連續分配管理方式
阿新 • • 發佈:2019-02-05
連續分配管理方式
連續分配方式是指為一個使用者程式分配一個連續的記憶體空間。通俗地說,就是給記憶體劃格子(格子中都是一個程序,和非連續分配管理方式相對)。
(1)單一連續分配
將記憶體分為系統區和使用者區,記憶體中永遠只有一道程式——已經成為歷史
(2)固定分割槽分配
分為2種方式: 分割槽大小相等, 分割槽大小不等
因為預先給分區劃定了記憶體大小,所以存在兩個問題:
一.程式可能太大而放不進任何一個分割槽中,使用者不得不用使用覆蓋技術
二.主存利用率低,當程式小於固定分割槽大小時,也佔用了一個完整的記憶體分割槽空間,分割槽內部有空間浪費,這種現象稱為內部碎片。
固定分割槽是可用於多道程式設計最簡單的記憶體分配
(3)動態分割槽分配
動態劃分記憶體,不預先將記憶體劃分,而是在程序裝入記憶體時,根據程序的大小動態地
建立分割槽,並使分割槽的大小正好適合程序的需要。系統中分割槽的大小和數目是可變的。
隨著程序的換入/換出,會出現更多更小的記憶體塊,記憶體的利用率隨之下降,這些小的記憶體塊稱為外部碎片,指在所有分割槽外的儲存空間會變成越來越多的碎片,這與固定分割槽的內部碎片正好相對。克服外部碎片可以通過緊湊技術來解決,就是作業系統不時地對程序進行移動和整理,相對費時。和windows系統中的磁碟整理程式類似。
在程序裝入或換入主存時,如果記憶體中有多個足夠大的空閒塊,作業系統必須確定分配哪個記憶體塊給程序使用,這就是動態分割槽的分配策略。有以下幾種演算法: