作業系統第四章第三 四節記憶體離散分配 分頁 分段

2021-09-02 01:40:38 字數 2351 閱讀 9827

第三節基本分頁儲存管理方式

分頁方式下,記憶體的使用率高,浪費少。但不是絕對沒有碎片(程序的最後一頁不總是能佔滿乙個物理塊)

1.(1)頁面的概念

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

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

頁面大小要適中。

太大,(最後一頁)內碎片增大,類似連續分配的問題。

太小的話,頁面碎片總空間雖然小,提高了利用率,但每個程序的頁面數量較多,頁表過長,反而又增加了空間使用。

(2)頁表的概念

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

每個作業有自己的頁表

要找到作業aà關鍵是找到頁表(pcb)à根據頁表找物理塊

(3)位址的處理

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

分頁規律

頁號+頁內位址(即頁內偏移)

關鍵的計算是:根據系統頁面大小找到不同意義二進位制位的分界線。

從位址中分析出頁號後,位址對映只需要把頁號改為對應物理塊號,偏移不變,即可找到記憶體中實際位置。

計算口訣

頁面大小決定偏移量(頁內位址)的位數 n;

作業大小à頁面數量à頁表長度 aà頁號的位數

m(或總位數-頁內位數)

記憶體容量決定塊數,塊數決定編址位數,即頁表項位數 b。

(4)位址變換機構

位址變換過程

分頁系統中,程序建立,放入記憶體,構建頁表,在pcb中記錄頁表存放在記憶體的首位址及頁表長度。

執行某程序a時,將a程序pcb中的頁表資訊寫入ptr中;

每執行一條指令時,根據分頁計算原理,得到指令頁號x和內部偏移量y;

cpu高速訪問ptr找到頁表在**;

查頁表資料,得到x實際對應存放的物理塊,完成位址對映計算,最終在記憶體找到該指令。

(5)引入快表——針對訪問速度問題

設一次查詢訪問快表時間為t』 ,則  eat= at』 + (1-a)(t』+t)+t=

2t +t』 -ta

(6)兩級、多級頁表,反置頁表——針對大頁表占用記憶體問題

頁表大小的討論

程序分頁離散存放,但頁表的資料是連續在存放記憶體的。而頁表可能很大:

現代作業系統支援非常大的邏輯位址空間的程序。如32位系統,可編址的最大**數為232,若頁面大小為4kb(4*210),則支援的最大程序頁表項數可達碼232/212=220,有1m個,每個頁表項佔1b(位元組),則頁表大小就有1mb。

第四節基本分段儲存管理方式

從提高記憶體利用率角度;

固定分割槽 à 動態分割槽à 分頁

從滿足並方便使用者(程式設計師)和使用上的要求角度:

分段儲存管理:作業分成若干段,各段可離散放入記憶體,段內仍連續存放。

方便程式設計:如彙編中通過段:偏移確定資料位置

資訊共享:同地位的資料放在一塊方便進行共享設定

資訊保護

動態增長:動態增長的資料段事先固定記憶體不方便

(1)分段系統的基本原理

程式通過分段(segmentation)劃分為多個模組,每個段定義一組邏輯資訊。如**段(主程式段main,子程式段x)、資料段d、棧段s等。

誰決定乙個程式分幾段,每段多大?

編譯程式(基於源**)

段的特點

每段有自己的名字(一般用段號做名),都從0編址,可分別編寫和編譯。裝入記憶體時,每段賦予各段乙個段號。

每段佔據一塊連續的記憶體。(即有離散的分段,又有連續的記憶體使用)

各段大小不等。

(2)段表與位址變換機構

(3)分頁和分段的主要區別

需求:分頁是出於系統管理的需要,是一種資訊的物理劃分單位,分段是出於使用者應用的需要,是一種邏輯單位,通常包含一組意義相對完整的資訊。

n  一條指令或乙個運算元可能會跨越兩個頁的分界處,而不會跨越兩個段的分界處。

其他:通常段比頁大,因而段表比頁表短,可以縮短查詢時間,提高訪問速度。分段模式下,還可針對不同型別採取不同的保護;按段為單位來進行共享

(4)資訊共享

u  分段系統的突出優點:

n  易於實現共享

p  在分段系統中,實現共享十分容易,只需在每個程序的段表中為共享程式設定乙個段表項。

p  比較課本圖。對同樣的共享內容的管理上,很明顯分段的空間管理更簡單。分頁的圖涉及太多的頁面劃分和位址記錄的管理。

n  易於實現保護:

p  **的保護和其邏輯意義有關,分頁的機械式劃分不容易實現。

(5) 段頁式儲存管理方式

① 基本原理

u  將使用者程式分成若干段,並為每個段賦予乙個段名。

u  把每個段分成若干頁

u  位址結構包括段號、段內頁號和頁內位址三部分

作業系統第四章

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

作業系統第四章

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

作業系統第三 四章作業

3.5 可以考慮將乙個就緒 掛起態的程序降低一定數量的優先順序,只有當就緒 掛起態在被降低優先順序後仍比最高優先順序的程序高時,才會被選做執行.4.2 對於使用者級執行緒來說,作業系統不能去讀寫程序內部的執行緒,它的排程是以程序為單位的.4.5 不會繼續執行.因為當程序退出時,會帶走 核心級執行緒,...