連續分配管理是指為使用者程序分配的記憶體空間是連續的一片空間
目錄
3.4 連續分配管理方式
3.4.1 單一連續分配
3.4.2 固定分割槽分配
3.4.3 動態分割槽分配
3.4.4 小結
在單一連續分配方式中,記憶體被分為系統區和使用者區。系統區通常位於記憶體的低位址部分,用於存放作業系統相關資料;使用者區用於存放使用者程序相關資料。並且記憶體中只能有一道使用者程式,使用者程式獨佔整個使用者區空間。
這種儲存方式的優點:實現簡單,沒有外部碎片;缺點:只能為單使用者單任務服務,會存在內部碎片,空間利用率極低。
這裡我們來引入兩個概念:記憶體中的外部碎片以及內部碎片。外部碎片:在記憶體中還沒有分配出去但是由於太小而無法分配給其他程序使用的記憶體空間;內部碎片:已經分配給明確程序的儲存區域,但由於一些原因未使用的部分。
在出現多道批處理系統之後,為了可以讓記憶體中裝入多道程式而引入了固定分割槽分配方式,固定分割槽分配方式將記憶體劃分成若干個大小固定的分割槽,不同分割槽之間互不干擾,根據劃分的依據不同又可以將固定分割槽分配分為分割槽大小相等以及分割槽大小不等的分配方式。
分割槽大小相等:缺乏靈活性,但是很
適合用於用一台計算機控制多個相同物件的場合
(比如:鋼鐵廠有
n個相同的煉鋼爐,就可把記憶體分為n個大小相等的區域存放n個煉鋼爐控制程式)
分割槽大小不等:增加了靈活性,可以滿足不同大小的程序需求。根據常在系統中執行的作業大小情況進行劃分(比如:劃分多個小分割槽、適量中等分割槽、少量大分割槽)
在進行固定分割槽分配的時候作業系統會產生乙個分割槽說明表,來實現各個分割槽的分配與**。每個表項對應乙個分割槽,通常按分割槽大小排列。每個表項包括對應分割槽的
大小、起始位址、狀態
(是否已分配)。這種方法實現簡單且無外部碎片,但是當使用者程式過大時所有劃分的分割槽均不滿足,只能採用覆蓋技術實現記憶體的使用,資源利用率不高,會產生內部碎片。
動態分割槽分配又稱為可變分割槽分配。這種分配方式不會預先劃分記憶體分割槽,而是在程序裝入記憶體時,根據程序的大小動態地建立分割槽,並使分割槽的大小正好適合程序的需要。因此系統分割槽的大小和數目是可變的。
對於動態分配方式,我們會採用空閒分配表或者空閒分配鏈等方式來記錄記憶體的使用情況。
空閒分配鏈:每個分割槽的起始部分和末尾部分分別設定前向指標和後向指標。起始部分處還可記錄分割槽大小等資訊
如何對動態分配方式的記憶體進行分配和**呢?動態分割槽進行分配可能會用到一些演算法,下節介紹。動態分割槽分配方式的**可以分為以下四種情況:**區的後面有乙個相鄰的空閒分割槽,那麼將兩個相鄰空閒分割槽合併為乙個;**區的前面有乙個相鄰的空閒分割槽,那麼兩個相鄰的空閒分割槽合併為乙個;**區的前、後各有乙個相鄰的空閒分割槽,三個相鄰的空閒分割槽合併為乙個;**區的前、後都沒有相鄰的空閒分割槽,那麼就在空閒分配表中多加乙個表項。總之,相鄰的空閒分割槽需要合併。
動態分割槽分配沒有內部碎片但是會存在外部碎片,對於外部碎片可以通過「緊湊」技術來解決。
作業系統 連續分配管理方式
連續分配方式是指為乙個使用者程式分配乙個連續的記憶體空間。內存在此方式下分為系統區和使用者區,系統區僅在作業系統使用,通常在低位址部分 使用者區是為使用者提供的 出系統區之外的記憶體空間。這種方式無需進行記憶體保護。因為記憶體中永遠只有一道程式,因此肯定不會越界和乾酪其他程式。固定分割槽分配是最簡單...
作業系統 連續分配儲存管理方式
目錄概述 一 單一連續分配 1.應用背景 2.基本思想 3,實現 4,特點 二 固定分割槽分配 1.應用背景 2.基本思想 3,實現 4,特點 三 動態分割槽分配 1.應用背景 2.基本思想 3,實現 資料結構 分配演算法 4,特點 四 動態可重定位分割槽分配 1.應用背景 2.基本思想 3,實現 ...
作業系統 記憶體管理之連續分配管理方式
連續分配方式,是指為乙個使用者程式分配乙個連續的記憶體空間。它主要包括單一連續分配 固定分割槽分配和動態分割槽分配。內存在此方式下分為系統區和使用者區,系統區僅提供給作業系統使用,通常在低位址部分 使用者區是為使用者提供的 除系統區之外的記憶體空間。這種方式無需進行記憶體保護。這種方式的優點是簡單 ...