目錄:
1. 虛拟記憶體的基本概念→ 傳統存儲管理方式;局部性原理;虛拟存儲器的定義和特征;虛拟記憶體技術的實作
2. 請求分頁管理方式→頁表機制;缺頁中斷機構;位址變換機構
3. 頁面置換算法→最佳置換算法;先進先出頁面置換算法;最近最久未使用置換算法;時鐘置換算法
4. 頁面配置設定政策→駐留集大小;調入頁面的時機;從何處調入頁面
5. 抖動
6. 工作集
1. 虛拟記憶體的基本概念
1.1 傳統存儲管理方式的特征
1) 一次性:作業必須一次性裝入記憶體後,才可以開始運作
2) 駐留性:作業被裝入記憶體後,就會一直停在記憶體裡,其他部分不會被不召喚出來,直到運作完成。
1.2 局部性原理
-CPU通路存儲器時,無論是取指令還是存指令或者資料,所通路的存儲單元都是趨于聚集在一個較小的連續區域中。
1)時間局部性:如果某資料被通路過,那麼這個資料以後就不會被通路了
2)空間局部性:一旦程式通路了某個存儲單元,那麼在不久的将來,這個存儲單元附近的單元也會被通路。
1.3虛拟存儲器的定義和特征
- 基于局部性原理,在程式裝入時,可以将程式的一部分裝入記憶體,而将其餘的部分留在外存,就可以啟動程式執行。在執行程式的過程中,當所通路的資訊不再記憶體的時候,由OS從外面調到記憶體裡。與此同時,OS也将暫不使用的内容放到外存上,進而騰出更多空間給使用者用,這樣的好像使用者有了比實際還要打的存儲器呢~這個東西呢,就叫虛拟存儲器。
*虛拟存儲器的三個特征: 1. 多次性 2. 對換性 3. 虛拟性
1.4 虛拟記憶體技術的實作
- 虛拟記憶體的實作是需要建立在離散配置設定的記憶體管理方式的基礎上的
2. 請求分頁管理方式
2.1 頁表機制
-請求分頁系統在一個作業運作之前不需要一次性全部導入到記憶體,是以肯定會出現通路頁面不存在的情況。那麼在請求頁表項中增加4個字段
頁号 | 實體塊号 | 狀态位P | 通路字段A | 修改位M | 外存位址 |
2.2 缺頁中斷機制
-在請求分頁系統中,每當要通路的頁面不在的時候,就會産生一個缺頁中斷, 會要求OS調入缺到的那一頁
*和一般的中斷相比: 1. 在指令執行期間和進行中斷信号,而不是在一條指令執行完會,屬于内部中斷;2. 一條指令在執行期間,可能會發生還幾次的缺頁中斷呢~
2.3 位址變換機制
- 通過快表而實作的?
3. 頁面置換算法
- 程序運作的時候,若通路的頁面不在記憶體裡需要申請調用但是記憶體空間已經不夠的時候,就需要從記憶體裡調出去一點資料和程式,讓記憶體多一點空間。
3.1 最佳置換算法(OPT)
-OPT所淘汰的頁面是以後永遠不會使用的,或者長時間沒有被使用的頁面。
- 但是你無法控制什麼頁面是永遠以後都不會被通路的,是以無法實作
3.2 先進先出頁面置換算法(FIFO)
- 淘汰最早的頁面。
- 但是萬一最早的頁面也是一直用的頁面就gg了
3.3 最近最久未使用置換算法(LRU)
-選擇最近最長時間沒被通路的頁面淘汰。因為LRU認為以前都沒被通路過的頁面,之後也不一定會被通路。
- 過去預測未來方式
3.4 時鐘置換算法(CLOCK)
- 給每一幀關聯一個使用位。當某一頁首次裝入主存的時候,使用位 = 1;如果之後該頁被通路了,那麼使用位也 = 1。當要發生替換的時候,檢查使用位 = 0的 ;而之後每當遇到 使用位 = 1 的時候全部置成0.
- 但是這個問題在于他沒考慮到修改位。是以改進版的CLOCK就是選擇了在加一個位來做改進位的處理。
最近未被通路 | 未被修改 | u = 0 | m = 0 |
最近被通路 | 未被修改 | u = 1 | m = 0 |
最近未被通路 | 被修改 | u = 0 | m = 1 |
最近被通路 | 被修改 | u = 1 | m = 1 |
4. 頁面配置設定政策
4.1 駐留集大小: 固定配置設定全局/ 可變配置設定全局/ 可變配置設定局部
4.2 調入頁面的時機:預處理/ 請求調頁
5. 抖動:就是剛剛換出的頁面馬上又要換入主存,剛剛換入主存的頁面馬上又要換出主存,就這麼來回進進出出的現象叫抖動。
6. 工作集:要通路的程序的集合