作業系統第四講 儲存器管理
第一講:記憶體管理概述
1. 記憶體管理的基本概念
-
邏輯地址及實體地址
-
外部碎片
記憶體中劃分給程序剩下太小的無法分配的空間
-
內部碎片
程序進入分配的塊,剩下的
2. 記憶體管理的基本功能
3. 程式的連結與裝入
-
程式的執行過程
-
絕對裝入
將程式裝入裝入到指定位置
僅適用單道程式
-
可重定位裝入
多道程式中不能預知應放到記憶體何處,因此採取可重定位裝入模式,放到記憶體中任何允許位置,根據記憶體情況將目標模組存放;需要根據相對地址更改絕對地址
目標模組起始地址一般從0開始
-
動態執行時裝入方式
裝入後還能移動位置;把絕對地址轉換推遲到程式真正執行的時候
4. 程式的連結
-
靜態連結
程式執行前就連結好
-
裝入時動態連結
-
執行時動態連結
考點二:記憶體連續分配管理方式
1. 單一連續分配
2. 固定分割槽分配
3. 動態分割槽分配
4.動態分割槽分配演算法
-
首次適應演算法FF First Fit
每次從鏈頭開始,直到找到第一個適合的空閒分割槽
-
迴圈首次適應NF Next Fit
每次從上一次結束地方再尋找
-
最佳適應BF Best Fit
優先使用滿足要求又是滿足要求分割槽中最小的適合分割槽
即使用內部碎片最小的分割槽
-
最壞適應WF Worst Fit
優先使用最大的分割槽
-
對比
5. 記憶體回收
考點三:基本分頁儲存管理方式
1. 基本概念
-
頁面和(物理塊/頁框)
程序分成:頁
記憶體分成:物理塊/頁框
蘿蔔和坑的關係
最後一頁可能放不滿頁框,造成頁內碎片
-
頁面大小
頁框大小與完整頁面大小一致
-
頁表
用於記錄程序每一頁再記憶體中對應的物理塊號(即頁框)
儲存對應關係
-
頁表項
頁表的基本單元,一條對應關係
由頁號和頁框號組成
2. 地址結構
-
結構圖
-
頁號和頁內地址計算
-
頁面大小
3. 地址變換機構
頁表對應關係的實現方式
要訪問某個邏輯地址中的資料
- 將有效地址(相對地址)分為頁號和頁內地址
- 檢索前先判斷越界,將頁號和頁表長度比較
- 用頁號檢索頁表,找到物理塊對應關係
- 計算該表項在頁表中位置,將頁表項開始地址與頁號和頁表項長度的乘積相加
- 得到物理塊號,裝入實體地址暫存器
- 將有效地址暫存器中頁內地址送入地址暫存器的塊內地址欄位
- 完成邏輯地址到實體地址的變換
4. 快表TLB(Translation Looksaide Buffer)
相當於一個頁表快取,先查快表如果頁號存在直接使用快取的物理塊地址,免去一次查詢整個頁表時間
5. TLB的實現方式(使用Cache來實現)
-
直接相聯對映
-
全相聯對映
-
組相聯對映
6. 兩級頁表和多級頁表
頁表太長需要將頁表進行分頁,需要建立一張表用於記錄頁表項對應的物理塊地址。