作業系統 學習筆記 四 儲存器管理

2021-10-05 20:09:11 字數 3244 閱讀 7124

採用多層結構儲存器的原因:

儲存器要求有速度快、容量大、便宜三個特點,由於至今無法同時滿足,所以採用多級結構。

1.儲存器的多層結構

儲存層次

越往上,速度越快,**越高,容量越小

2.可執行儲存器

可執行儲存器因為與輔存訪問機制不同,速度更快

1.主儲存器

作用

儲存程序執行時的程式和資料

2.暫存器

與處理機速度相同,所以貴且小

1.快取記憶體

作用

備份主存中較常用的資料,以減少處理機對主存的訪問次數

2.磁碟快取

作用

備份=磁碟中較常用的資料,以減少對磁碟的訪問次數

特點

磁碟快取不是實際存在的,而是利用主存中的一部分作為磁碟快取

程式要執行必須先裝入記憶體,再轉變為可以執行的程式

裝入記憶體的步驟

編譯:編譯程式對使用者源程式進行編譯,形成若干個目標模組

裝入:裝入程式將裝入模組裝入記憶體

1.絕對裝入方式

條件

系統小,單道程式,知道程式在記憶體什麼位置

過程

程式編譯後的絕對位址,和之前程式中寫的邏輯位址是相同的,所以可以直接按照原有邏輯位址進行裝入

注意事項

程式中採用符號位址,編譯後後才轉變為絕對位址

2.可重定位裝入方式

條件

多道程式中,編譯程式不知道將會把目標程式放在記憶體的何處,所以形成的絕對位址會與邏輯位址不同

過程

將所有的邏輯位址自加上裝入位置的首位址

注意

所有的指令位址和指令中操作的位址都要自加

位址變換在程式裝入時一次完成,所以又稱靜態重定位

3.動態執行時的裝入方式

條件

程式裝入記憶體後不立刻修改位址,而是在程式即將執行時修改位址

根據進行鏈結的時間不同進行分類

該過程將各個互相diaoyong

1.靜態鏈結方式

2.裝入時動態鏈結

在目標程式裝入的時候再鏈結,即裝入時需要呼叫哪個模組,再將該模組找來裝入

這樣便於模組的共享和修改

3.執行時動態鏈結

由於程式執行時要執行哪些模組是不確定的,所以按照上面的方法,需要全部鏈結和裝入

該種方法是在程式執行時需要哪些再鏈結、裝入哪些。

程式進入記憶體,需要分配一塊記憶體空間。

連續分配方式時早出現的一種儲存器分配方法,曾廣泛用於60~80年代。

具體表現為:邏輯位址相鄰則分配的絕對位址相鄰。

以下為四種方式:

記憶體中只裝有乙個程式,用於單道程式環境下

在多道程式系統下,將記憶體分為幾個分割槽,每個分割槽執行乙個程式。

劃分分割槽的方法

根據程序的實際需求,動態的為之分配記憶體空間

1.資料結構

作用:

描述分割槽的分配情況

形式

2.分配演算法

即4.3.4和4.3.5

3.分割槽分配操作

分配記憶體

檢索分割槽表或鏈,找到大於需要空間的記憶體分割槽,若它比需要記憶體大出的那一部分小於事先規定的最小分割大小,則全分給他,否則就將多出來的留下來下次用,然後再把正好的分給它。

**記憶體

程序執行完要**記憶體,要**的那一部分稱為**區,此時有四種情況

順序搜尋就是使用鏈結構,依次查詢

1.首次適應演算法

方法優點

留下高位址的大空間,為後來的大作業分配空間創造了機會

缺點

低位址會留下很多無法利用的小空間,每次從低位址開始,會浪費時間

2.迴圈首次適應演算法

方法優缺點和上一方法完全相反

3.最佳適應演算法

方法

鏈按照從小到大排列,從頭依次尋找,第乙個合適的就是最小的滿足條件的分割槽,將該分割槽分配出去

缺點

形成難以利用的碎片空間

4.最壞適應演算法

和上乙個剛好相反

優點是效率高,缺點是會缺少大空間

這種演算法適用於中大型系統,上一種適用於小型系統

1.快速適應演算法/分類搜尋法

方法

將分割槽按照大小進行分類,同一類設定乙個鍊錶來鏈結。設定乙個管理索引表,來記錄這些鍊錶。分配時,根據索引表找到最小的符合項,將該表項對應的鏈第乙個分配給他,不會進行分割。

分類是按照常用空間大小分類,如2,4,8.像7這樣的大小可以分到4或者特許空間區鍊錶

優點

快,不會留下碎片

缺點

歸還方式複雜,不切割導致空間利用率低

2.夥伴系統

保證每乙個空閒分割槽和非空閒分割槽都是2n。根據n的大小對分割槽進行分類。

每次需要乙個大小為m的分割槽,就找大小為2i大小的分割槽。

保證:2(i-1)

i然後將該分割槽分給它。

如果沒有,則找2i+1的分割槽,將該分割槽分為兩個,乙個分配,乙個加入2i類別。

還沒有則找2i+2,分割,乙個加入2i+1 類別,另乙個分割後同上一句話。

以此類推

優點是增加空間利用率,缺點是效率降低

3.雜湊演算法

利用雜湊快速查詢的方法完成

1.緊湊

為了利用記憶體中的碎片記憶體,將已用記憶體進行移動,從而使碎片記憶體和為乙個大記憶體,該過程為緊湊

2.動態重定位

動態執行時裝入方法中有乙個重定位暫存器,記錄程式的開頭位址,發生緊湊時,只需要改變這個位址即可。

3.動態重定位分割槽分配演算法

與動態分割槽分配類似。額外加乙個,如果沒有分割槽可以分,但是碎片加起來可以大於所需記憶體,則進行緊湊然後分配記憶體。

《作業系統》學習筆記 儲存管理

目錄早期的記憶體管理方式 分頁分段 分頁和分段的區別 段頁式虛擬記憶體 請求分頁 頁面置換演算法 記憶體塊的分配和抖動 動態執行時裝入方式 程序的記憶體映像在不同時候處於不同位置 將邏輯位址轉變為記憶體實體地址的過程 缺點 動態重定位 在程式執行期間,每次訪問記憶體之前進行重定位 缺點 需要硬體支援...

作業系統學習筆記(10) 虛擬儲存管理

1 程式訪問區域性性原理 2 虛擬儲存器 3 請求頁式儲存管理 位址轉換過程 以頁號為索引搜尋快表 如果在快表中命中,立即送出頁框號,並與頁內位址拼接成實體地址,然後,進行許可權檢查,如獲通過程序就可以訪問實體地址了 如果在快表中不命中,以頁號為索引搜尋程序頁表,頁表的始址由硬體頁表控制暫存器指出 ...

四作業系統儲存器管理

儲存部件的層次 cpu暫存器 快取記憶體 主 存 磁碟快取 磁 盤 可移動儲存介質 1 程式的裝入和鏈結 程式進記憶體的一般過程 1 編譯compiler 2 鏈結link 3 裝入load 位址的概念 邏輯位址 相對位址,虛位址 使用者的程式經過彙編或編譯後形成目標 目標 中的指令位址是相對位址。...