作業系統原理之記憶體管理 第四章第一部分

2022-04-25 17:05:53 字數 2297 閱讀 8771

記憶體管理的⽬標:實現記憶體分配和**,提高記憶體空間的利用率和記憶體的訪問速度

暫存器:在cpu內部有一組cpu暫存器,暫存器是cpu直接訪問和處理的資料,是乙個臨時放資料的空間。

高速緩衝區:一般cpu都會從內訪問資料到暫存器,然後進行處理,但由於記憶體的處理速度遠遠低於cpu,導致cpu在處理指令時往往花費很多時間在等待記憶體做準備工作,於是在暫存器和主記憶體間新增了cpu快取,cpu快取比較小,但訪問速度比主記憶體快得多,如果cpu總是操作主記憶體中的同一址地的資料,很容易影響cpu執行速度,此時cpu快取就可以把從記憶體提取的資料暫時儲存起來,如果暫存器要取記憶體中同一位置的資料,直接從快取中提取,無需直接從主記憶體取

快取命中率:暫存器並不是每次資料都可以從快取中取得資料,假如暫存器要獲取的不是同乙個記憶體位址中的資料,那暫存器就必須直接繞過快取從記憶體中取資料。所以並不是每次都能從快取中取到資料,這種現象叫做快取的命中率。命中就直接取快取中的資料,否則從記憶體中取;可見快取命中率的高低也會影響cpu執行效能。

互動流程:當乙個cpu需要訪問主存時,會先讀取一部分主存資料到cpu快取(當然如果cpu快取中存在需要的資料就會直接從快取獲取),進而在讀取cpu快取到暫存器,當cpu需要寫資料到主存時,同樣會先重新整理暫存器中的資料到cpu快取,然後再把資料重新整理到主記憶體中。

資料儲存的區域性性原理:

區域性性:在⼀段較短時間內,程式的執⾏僅限於某個部分,相應地它所訪問的儲存空間也侷限於某個區域

分類:⾼級語⾔程式  -》   編譯、鏈結 -》   可執⾏程式

程式的裝⼊

可重定位裝⼊⽅式 (靜態重定位):編譯時位址是邏輯位址,裝⼊時 通過重定位轉換為實體地址 ( 重定位:程式裝⼊時對⽬標程式中的指令和資料位址的修改過程叫重定位

)實體地址=邏輯位址+程式在記憶體中的起始位址

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

連續分配方式進一步分為:單一連續分配、固定分割槽分配、動態分割槽分配以及動態重定位分割槽分配。

1、單一連續分配:任何時刻主儲存器最多只有⼀個作業

2、固定分割槽分配:每個分割槽⼤⼩固定不變(各個分割槽大小可以相同也可以不同),每個分割槽可以且僅可以裝⼊⼀個作業

固定分割槽說明表 :由固定分割槽說明表可以檢視哪個分割槽空閒,哪個分割槽被占用

3、動態分割槽分配:

空閒分割槽鏈:

1、⾸次適應演算法:空閒分割槽鏈以位址遞增的順序鏈結, 從鏈⾸開始查詢 ,直⾄找到第⼀個滿⾜要求的空閒分割槽, 從該分割槽中劃出⼀塊記憶體給程序 ,剩下的仍留在空閒鏈中。

外部碎⽚:分配後留在空閒鏈上的。首次適應演算法會產生該碎片。

內部碎⽚:由於空閒的區域比申請的大一點點,系統就直接把多餘的這一點也分配給你。

2、迴圈⾸次適應演算法:從上次找到的空閒分割槽的下⼀個空閒分割槽開始查詢。 優點:空閒區分布均勻

1)釋放⼀塊連續的記憶體區域    2)如果被釋放的區域與其他空閒區相鄰,則合併空閒區      3)修改空閒分割槽鏈

系統區用於駐留作業系統,使用者區用於分配給使用者程序使用

為了防止工作使用者程式對作業系統的破壞,保證系統的安全、可靠,在作業系統中應該考慮設定儲存器保護機制。在單使用者、單任務作業系統中較常用的方法是設定乙個基址暫存器和乙個界限暫存器。

作業系統原理第四章 執行緒

2 核心執行緒和使用者執行緒 3 執行緒模型 前面章節提到,引入程序是為了解決程式併發所出現的一些問題,程序具有兩個基本的屬性 正是因為程序具有這兩個基本屬性,所以程序成為併發執行的基本單位,在一些早期的os中,比如大多數unix系統 linux等,程序同時具有這二個屬性,由於 程序是乙個資源的擁有...

作業系統第四章

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

作業系統第四章

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