1. 程式人生 > >作業系統中的記憶體分配

作業系統中的記憶體分配

連續的記憶體分配

記憶體通常有兩個區域
- 存放作業系統的區域
- 存放使用者程序的區域
將多個程序存放到記憶體中需要考慮如何將輸入佇列中需要調入記憶體的多個程序進行記憶體分配。採用連續記憶體分配時,每個程序位於一個連續的記憶體區域。

記憶體分配方法

  1. 固定分割槽分配

    將記憶體分為多個固定大小的分割槽,每個分割槽只能容納一個程序。當程序終止時,其分割槽可以被其他程序所利用。
    現在這種方案已經不再使用,主要用於批處理的環境。

  2. 列表內容

    在可變分割槽分配中,有個表記錄哪些記憶體可用,哪些記憶體已被佔用。有新的程序需要記憶體時,為該程序尋找滿足需要的記憶體塊,如果找到就為之分配記憶體
    在尋找記憶體塊的時候有一下三種方案可以選擇:

    • 首次適應:為程序分配第一個滿足大小的記憶體塊,查詢從頭開始找,一旦找到足夠大的空閒塊,就停止尋找,為之分配。
    • 最佳適應:分配能夠滿足程序的最小的空閒記憶體塊,查詢整個列表,尋找能搞滿足程序的最小空閒記憶體塊。該方法會產生最小剩餘的記憶體塊。
    • 最差適應:分配能夠滿足程序的最大空閒記憶體塊,查詢整個列表,尋找能夠滿足程序的最大空閒記憶體塊,該方法會產生最小剩餘記憶體塊。