計算機作業系統第四章

2021-09-02 16:29:51 字數 3128 閱讀 4025

第四章 儲存器管理

1、程式的裝入和鏈結

多道程式環境下,程式執行必須為之先建立程序。

建立程序的第一件事:將程式和資料裝入記憶體。

程式進記憶體的一般過程:

編譯compiler:編譯程式:將使用者源**編譯成若干個目標模組。

鏈結link:鏈結程式:將形成的一組目標模組,及它們需要的庫函式鏈結在一起,形成乙個完整的裝入模組。

裝入load:由裝入程式將裝入模組裝入記憶體,構造pcb,形成程序,開始執行(使用實體地址)。

(1)位址的概念

邏輯位址(相對位址,虛位址)

實體地址(絕對位址,實位址)

記憶體中儲存單元的位址。

實體地址可直接定址被執行。

位址對映:將使用者程式中的邏輯位址轉換為執行時由機器直接定址的記憶體實體地址的過程。

(2)程式裝入中的位址處理

絕對裝入(邏輯位址=實體地址)

靜態重定位裝入

動態執行時重定位裝入

(3)不同的程式鏈結裝入方式(使用記憶體的時機)

靜態鏈結

裝入時鏈結

執行時鏈結

2、連續分配方式

(1)單一連續分配

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

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

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

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

優點:易於管理。

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

(2)固定分割槽分配

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

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

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

具體實現:

1)如何劃分分割槽大小

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

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

2)需要的資料結構

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

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

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

3)分配**操作

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

檢索演算法:空閒分割槽表可能按不同分配演算法採用不同方式對表項排序(將分割槽按大小排隊或按分割槽位址高低排序)。

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

(3)動態分割槽分配

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

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

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

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

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

具體實現:

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

①空閒分割槽表

②空閒分割槽鏈

2)分割槽分配演算法

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

3)分割槽分配操作

分配記憶體:找到滿足需要的合適分割槽,劃出程序需要的空間

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

4)動態重定位分割槽分配——有緊湊功能的動態分割槽分配

位址變換過程是在程式執行過程期間(相對位址與重定位暫存器中的位址相加),隨著對每條指令的訪問自動進行,稱為動態重定位。

動態重定位分割槽分配演算法與動態分割槽分配演算法基本相同,差別在於增加了緊湊的功能。

(5)記憶體空間管理之對換

當記憶體空間還是滿足不了需求時,引入「對換」思想:

把記憶體中暫時不能執行、或暫時不用的程式和資料調到外存上,以騰出足夠的記憶體;把已具備執行條件的程序和程序所需要的程式和資料,調入記憶體

按對換單位分類:

整體對換(或程序對換):以整個程序為單位(連續分配)

頁面對換或分段對換:以頁或段為單位(離散分配)

實現程序對換,系統必須具備的功能:

對換空間的管理

程序的換出、換入操作

3. 基本分頁儲存管理方式

(1)頁面的概念

記憶體劃分成多個小單元,每個單元k大小,稱(物理)塊。作業也按k單位大小劃分成片,稱為頁面。

① 物理劃分塊的大小 = 邏輯劃分的頁的大小

②頁面大小要適中。

(2)頁表的概念

為了找到被離散分配到記憶體中的作業,記錄每個作業各頁對映到哪個物理塊,形成的頁面對映表,簡稱頁表。

每個作業有自己的頁表

頁表的作用:頁號到物理塊號的位址對映

要找到作業a

關鍵是找到頁表(pcb)

根據頁表找物理塊

(3)位址的處理

連續方式下,每條指令用基位址+偏移量即可找到其物理存放的位址。

(4)位址變換機構

(5)快表

(6)多級頁表

4.基本分段儲存管理方式

作業系統第四章

2 分割槽分配演算法 動態分割槽方式,分割槽多 大小差異各不相同,此時把乙個新作業裝入記憶體,更需選擇乙個合適的分配演算法,從空閒分割槽表 鏈中選出一合適分割槽 首次適應演算法ff 迴圈首次適應演算法 最佳適應演算法 最差適應演算法 快速適應演算法 4 動態重定位分割槽分配 有緊湊功能的動態分割槽分...

作業系統第四章

常用排程演算法 先來先服務演算法 fcfs 短程序優先演算法 spf 短剩餘時間優先演算法 srt 最高響應比優先演算法 hrrn 時間片輪轉演算法 rr 和多級反饋演算法 mfq 先來先服務演算法 fcfs 基本思想是按照程序進入就緒佇列的先後次序來分配處理機.採用不可剝奪方式 fcfs演算法很少...

作業系統第四章作業

什麼是臨界資源?什麼是臨界區?對臨界資源的訪問有哪些原則?臨界資源 一次僅允許乙個程序使用的共享資源。臨界區 每個程序中訪問臨界資源的那段程式。訪問原則 空閒讓進,如果有若干程序要求進入空閒的臨界區,一次僅允許乙個程序進入。忙則等待,任何時候,處於臨界區內的程序不可多於乙個。如已有程序進入自己的臨界...