作業系統8 儲存器管理

2021-08-21 16:47:02 字數 2052 閱讀 1803

根據馮· 諾依曼原理,程式必須先儲存在記憶體中,才可以執行。

在多道程式併發執行的系統儲存器管理非常重要。

8.1 程式的裝入與鏈結

使用者源程式執行通常要經過的步驟:

8.1.1 程式的裝入

把程式裝入記憶體空間。採用三種方式:

可重定位方式(relocatable loading mode)

優點:不依賴於硬體,可以裝入有限多道程式;無須硬體支援。

缺點:一次性全部裝入;乙個程式通常需要占用連續的記憶體空間;程式裝入記憶體後執行時不能移動。

動態執行時裝入方式(dynamic run-time loading)

缺點:需要硬體支援,os實現較複雜。它是虛擬儲存的基礎。

8.1.2 程式的鏈結

管理開銷:程式由多個檔案組成,增加管理復 雜度。

8.2 儲存器管理的功能

8.2.1 主存分配

要完成記憶體的分配和**工作,要求設計者選擇和確定幾種策略和結構:

放置策略

置換策略

分配結構

引起記憶體分配和**的原因

8.2.2 位址對映

把使用者程式裝入記憶體時對有關指令的位址部分的修改定義為從程式位址到記憶體位址的位址對映,或稱為位址重定位。

8.2.3 儲存保護
保證在記憶體中的多道程式只能在給定的儲存區域內活動並互不產生干擾。

實現方法:

8.2.4 主存擴充(虛擬記憶體)

實現虛擬記憶體的基本原理:

8.3 連續分配方式

連續分配方式是指為乙個使用者程式分配乙個連續的記憶體空間。

8.3.1 單一連續分配

8.3.2 固定分割槽分配

分割槽的劃分可採用分割槽大小相等和不等兩種方式

分割槽大小通常由計算機操作員或由作業系統給出,並維護分割槽說明表,包含每個分割槽的起始位址、大小及狀態。

當使用者程式需裝入記憶體時,檢查分割槽說明表,如果有可用的滿足要求的分割槽,則分配,並置該分割槽狀態為「已分配」;否則不給該程式分配記憶體。

例: 某系統的記憶體容量為256k,作業系統占用低位址的20k,其餘空間劃分成4個固定大小的分割槽。

效能分析:

可以和覆蓋、交換技術配合使用。

8.3.3 動態分割槽分配

動態分割槽分配是指在系統執行的過程中建立分割槽,並使分割槽的大小剛好與作業的大小相等。

實現動態分割槽需要的資料結構:

空閒分割槽表和空閒分割槽佇列舉例:

動態分割槽的分配和**:

分割槽的**

空閒分割槽表或佇列的排序:

三種放置策略:

1.首次適應法(first-fit)

首次適應法的優點:

2.下次匹配法(next-fit) ——迴圈首次適應法

按空閒分割槽的前後次序,從上次分配的分割槽起查詢(到最後分割槽時再回到開頭),找到符合要求的第乙個分割槽。

**:按釋放區的首址,查詢空閒區表(佇列),若有與釋放區相鄰的空閒區,則合併到相鄰的空閒區中,並修改該區的大小和首址,否則,把釋放區作為乙個空閒區插入空閒區表(佇列)。

分配和**後要對空閒區表(佇列)重新排序。

分析:

優點:

缺點:

3.最壞適應法(worst-fit)

** 分配**後要對空閒分割槽表/佇列重新排序。

最壞適應法看起來似乎有些荒唐,但有它的優點:

三種策略比較;

碎片問題:

在分割槽儲存管理中解決碎片的辦法

8.3.4 可重定位分割槽分配

作業系統 儲存器管理

程式的裝入和鏈結 連續分配方式 基本分頁儲存管理方式 基本分段儲存管理方式 虛擬儲存器的基本概念 請求分頁儲存管理方式 頁面置換演算法 請求分段儲存管理方式 使用者程式要在系統中執行,必須先將它裝入記憶體,然後由編譯程式 compiler 對使用者源程式進行編譯,形成若干個目標模組 object m...

作業系統 儲存器管理

第四章 儲存器管理 儲存器的層次結構 儲存器的三層結構,cpu暫存器 暫存器 主存 快取記憶體,主儲存器,磁碟快取 輔存 固定磁碟,可移動儲存介質 處理機都是從主儲存器中取得指令和資料,將取得指令放入指令暫存器中,資料放入資料暫存器中 暫存器存放運算元,作位址暫存器加快位址轉換速度 快取記憶體用以緩...

作業系統 儲存器管理

使用者程式要在系統中執行的話,就必須裝入記憶體,然偶後將其轉變為乙個可執行的程式。程式的鏈結 程式的裝入 程式裝入記憶體的問題解決了,但是記憶體又是怎麼為程式分配記憶體的?連續分配 分配演算法 基於索引搜尋 分配操作 事先規定最小的剩餘分割槽大小size,當需要分配u.size大小記憶體的時候,從空...