主存管理 | 存儲器管理概述
存儲器管理功能
地址映射
將程序地址空間中使用的邏輯地址變換成主存中的物理地址的過程,稱為地址映射。
地址映射方式
① 編程或編譯時確定地址映射關係
在程序編寫或程序編譯時確定虛、實地址之間的對應關係,結果是一個不能浮動的程序模塊。
② 在程序裝入時確定地址映射關係
在程序裝入過程中隨即進行的地址變換方式稱為靜態地址映射。
③ 在程序運行時確定地址映射關係
在程序執行期間,隨著每條指令和數據的訪問自動地連續地進行地址映射,這種地址變換方式稱為動態地址映射。
④ 靜態地址映射與動態地址映射的區別
主存分配
1. 構造分配用的數據結構
主存資源信息塊:等待隊列;空閑區隊列;主存分配程序
2. 制定策略
① 分配策略 —— 在眾多個請求者中選擇一個請求者的原則
② 放置策略 —— 在可用資源中,選擇一個空閑區的原則
③ 調入策略 —— 決定信息裝入主存的時機。預調策略:預先將信息調入主存。請調策略:當需要信息時,將信息調入主存
④ 淘汰策略 —— 在主存中沒有可用的空閑區 (對某一程序而言)時,決定哪些信息從主存中移走,即確定淘汰已佔用的內存區的原則。
3. 實施主存分配與回收
存儲保護
在多用戶環境中,主存儲器按區分配給各用戶程序使用。為了互不影響,必須由硬體(軟體配合)保證各用戶程序只能在給定的存儲區域內活動,這種措施叫做存儲保護。
實現方法
- 界地址保護
- 存儲鍵保護
界地址保護
① 上下界防護
例:程序大小為4KB,主存首址為20KB。
設置一個上界和下界寄存器,當有一個物理地址得到的時候與上界地址和下界地址比較。若 20KB≤D<24KB,允許訪問;否則發生越界中斷。
② 基地址、限長保護
例:程序大小為4KB,主存首址為20KB。
基址寄存器存儲了這個程序的起始地址,限長寄存器記錄了這個程序的長度的限制。使用相對地址就可以對其進行判斷。在地址映射之前就可以完成越界判斷。
主存擴充
- 必要性——主存容量不滿足應用需求
- 可行性——局部性特徵
- 時間局部性(不久的將來再次訪問該指令/數據)
- 空間局部性(馬上將訪問其附近的指令/數據)
- 實現方法
- 程序的全部代碼和數據存放在輔存中;
- 程序當前執行所涉及的那部分程序代碼放入主存中;
- 程序執行時,當所需信息不在主存,由操作系統和硬體配合來從輔存中調入信息,程序繼續執行。
這樣的實現方式就是虛擬存儲器的方式。
虛擬存儲器
由操作系統和硬體相配合來完成主存和輔存之間的信息的動態調度。這樣的計算機系統好像為用戶提供了一個其存儲容量比實際主存大得多的存儲器,這個存儲器稱為虛擬存儲器。
虛擬存儲器的核心
- 邏輯地址與物理地址分開
- 存儲空間與虛地址空間分開
- 提供地址變換機構
實現虛擬存儲器的物質基礎
- 輔存容量足以存放應用程序的虛地址空間
- 主存容量存放進入主存的多進程的信息
- 地址變換機構
存儲器的層次體系結構
地址空間的概念
物理地址(絕對地址、實地址)
物理地址是計算機主存單元的真實地址,又稱為絕對地址或實地址。
主存空間
物理地址的集合所對應的空間組成了主存空間。
邏輯地址(相對地址、虛地址)
用戶程序地址(指令地址或操作數地址)均為邏輯地址。
程序地址空間
用戶程序所有的邏輯地址集合對應的空間。
存儲器管理方式
- 大小不等的區域(適合不同大小的程序運行)
- 分區存儲管理
- 段式存儲管理
- 大小相等的區域
- 頁式存儲管理
- 二者結合
- 段頁式存儲管理
- 虛擬存儲器
程序的邏輯組織
一維地址結構
- 一個程序是一個連續、線性的地址結構;
- 確定線性地址空間中的指令地址或操作數地址只需要一個信息。
二維地址結構
- 程序由若干個段組成,每個段是一個連續的地址區;
- 確定程序空間中的指令或操作數地址需要兩個信息:分段和段內的偏移量。
推薦閱讀:
※win10 專業版 激活教程
※操作系統引論 | 操作系統的地位和作用
※遊戲開發與程序設計知識總結04——操作系統
※CSAPP Lab -- Cache Lab
※操作系統精髓與設計原理讀書筆記8
TAG:操作系統 |