儲存器管理 2

2021-09-02 11:40:05 字數 2872 閱讀 1689

u 1 程式的裝入和鏈結

u 2 連續分配儲存管理方式

u 3 分頁儲存管理方式

u 4 分段儲存管理方式

u 5 虛擬儲存器、請求分頁/分段、頁面置換演算法

2、連續分配方式

(1)單一連續分配

記憶體分為系統區和使用者區兩部分:

n  系統區:僅提供給os使用,通常放在記憶體低址部分

n  使用者區:除系統區以外的全部記憶體空間,提供給使用者使用。

u 最簡單的一種儲存管理方式,只能用於單使用者、單任務的作業系統中。

n  優點:易於管理。

n  缺點:對要求記憶體空間少的程式,造成記憶體浪費;程式全部裝入,很少使用的程式部分也占用記憶體。

(2)固定分割槽分配

把記憶體分為一些大小相等或不等的分割槽(partition),每個應用程序占用乙個分割槽。作業系統占用其中乙個分割槽。

u 提高:支援多個程式併發執行,適用於多道程式系統和分時系統。最早的多道程式儲存管理方式。

劃分為幾個分割槽,便只允許幾道作業併發

u 具體實現:

1)如何劃分分割槽大小

2)需要的資料結構

3)分配**操作

1)如何劃分分割槽大小:

n  分割槽大小相等:只適合於多個相同程式的併發執行(處理多個型別相同的物件)。缺乏靈活性。

n  分割槽大小不等:多個小分割槽、適量的中等分割槽、少量的大分割槽。根據程式的大小,分配當前空閒的、適當大小的分割槽。

2)需要的資料結構

n  建立一記錄相關資訊的分割槽表(或分割槽鍊錶),表項有:

| 起始位置 | 大小 | 狀態 |

n  分割槽表中,表項值隨著記憶體的分配和釋放而動態改變

3)程式分配記憶體的過程:

p  也可將分割槽表分為兩個**:空閒分割槽表/占用分割槽表。從而減小每個**長度。

p  過程:檢索空閒分割槽表;找出乙個滿足要求且尚未分配的分割槽,分配給請求程式;若未找到大小足夠的分割槽,則拒絕為該使用者程式分配記憶體。

(3)動態分割槽分配

u   分割槽的大小不固定:在裝入程式時根據程序實際需要,動態分配記憶體空間,即——需要多少劃分多少。

u 空閒分割槽表項:從1項到n項:

記憶體會從初始的乙個大分割槽不斷被劃分、**從而形成記憶體中的多個分割槽。

動態分割槽分配

優點:併發程序數沒有固定數的限制,不產生內碎片。

缺點:有外碎片(分區間無法利用的空間)

具體實現:

1)分割槽分配中的資料結構

2)分割槽分配演算法

3)分割槽分配操作

1)資料結構

①  空閒分割槽表:

•    記錄每個空閒分割槽的情況。

•    每個空閒分割槽對應乙個表目,包括分割槽序號、分割槽始址及分割槽的大小等資料項。

②  空閒分割槽鏈:

•    每個分割槽的起始部分,設定用於控制分割槽分配的資訊,及用於鏈結各分割槽的前向指標;

•    分割槽尾部則設定一后向指標,在分割槽末尾重複設定狀態位和分割槽大小表目方便檢索。

2)分割槽分配演算法

動態分割槽方式,分割槽多、大小差異各不相同,此時把乙個新作業裝入記憶體,更需選擇乙個合適的分配演算法,從空閒分割槽表/鏈中選出一合適分割槽

①  首次適應演算法ff

②  迴圈首次適應演算法

③  最佳適應演算法

④  最差適應演算法

⑤  快速適應演算法

①首次適應演算法

空閒分割槽排序:以位址遞增的次序鏈結。

檢索:分配記憶體時,從鏈首開始順序查詢直至找到乙個大小能滿足要求的空閒分割槽;

分配:從該分割槽中劃出一塊作業要求大小的記憶體空間分配給請求者,餘下的空閒分割槽大小改變仍留在空閒鏈中。

u 若從頭到尾檢索不到滿足要求的分割槽則分配失敗

缺點:但低址部分不斷劃分,會產生較多小碎片;而且每次查詢從低址部分開始,會逐漸增加查詢開銷。

②迴圈首次適應演算法

分配:分出需要的大小

優點:空閒分割槽分布均勻,減少查詢開銷

缺點:缺乏大的空閒分割槽

③最佳適應演算法

總是把能滿足要求、又是最小的空閒分割槽分配給作業,避免「大材小用」。

空閒分割槽排序:所有空閒分割槽按容量從小到大排序成空閒分割槽表或鏈。

檢索:從表或鏈的頭開始,找到的第乙個滿足的就分配

分配:分出需要的大小

缺點:每次找到最合適大小的分割槽割下的空閒區也總是最小,會產生許多難以利用的小空閒區(外碎片)

④最差適應演算法/最壞匹配法:基本不留下小空閒分割槽,但會出現缺乏較大的空閒分割槽的情況。

⑤快速適應演算法

n  根據程序常用空間大小進行劃分,相同大小的串成乙個鏈,需管理多個各種不同大小的分割槽的鍊錶。程序需要時,從最接近大小需求的鏈中摘乙個分割槽。類似的:夥伴演算法

n  能快速找到合適分割槽,但鍊錶資訊會很多;實際上是空間換時間。

3)分割槽分配操作

v  分配記憶體

v  找到滿足需要的合適分割槽,劃出程序需要的空間

v if s<=size,將整個分割槽分配給請求者

v if s> size,按請求的大小劃出一塊記憶體空間分配出去,餘下部分留在空閒鏈中,將分配區首址返回給呼叫者。

v  **記憶體

v  程序執行完畢釋放記憶體時,系統根據**區首址a,在空閒分割槽鏈(表)中找到相應插入點,根據情況修改空閒分割槽資訊,可能會進行空閒分割槽的合併:

**分割槽

(1)**區(首址a)與乙個分割槽f1末尾(首址b+大小)鄰接:將**區與f1合併,修改f1的表項的分割槽大小

(2)**區(首址a+大小)與乙個分割槽f2的首址b鄰接:將**區與f2合併,修改f2的表項的首址、分割槽大小

(3) (1)(2)兩種情況都有,則將**區與前後兩個分割槽f1、f2鄰接:將三個分割槽合併,使用f1的表項和f1的首址,取消f2的表項,大小為三者之和

(4) **區沒有鄰接的分割槽:為**區單獨建立新表項,填寫**區的首址與大小,根據其首址插到空閒鏈中的適當位置

儲存器管理2

4.1.3 基本分頁儲存管理方式 1.分頁儲存管理的基本方法 系統將邏輯位址空間分成若干大小相等的片,叫頁面,記憶體空間分成若干與頁面同樣大小的塊,記憶體的分配以塊為單位,允許將乙個程序的若干頁分別裝入不相鄰的塊中。頁面大小通常設成2的冪頁面大小為 2 k位元組,邏輯位址長度為 n位,右邊的 k位為...

儲存管理2

ext4檔案系統 名詞解釋 ext4是 擴充套件檔案系統 英語 fourth extended filesystem 型別 索引 index 檔案系統 系統限制 ext3 檔案系統最大為16tb ext4 檔案系統最大為16tb xfs 檔案系統最大為100tb 名詞 inode 記錄檔案的屬性 檔...

儲存管理2

分頁儲存器將主存劃分成多個大小相等的頁架,受頁架尺寸限制,程式的邏輯位址也自然分成頁,不同的頁可以放在不同頁架中,不需要連續,頁表用於維繫程序的主存完整性 位址轉換可以通過查頁表完成 可用一張位示圖來記錄主存分配情況,建立程序頁表維護主存邏輯完整性 頁式儲存管理能夠實現多個程序共享程式和資料,資料共...