這裏的概念非常多,那麼我們來理一下這裏的概念吧
知識點
首先分爲兩部分用戶進程 和 內存
區域
內存:
將內存空間分爲大小相等的塊,每一塊稱之爲頁框(內存塊),把每一塊的編號稱之爲頁框號(內存塊號)
用戶進程
將用戶進程的地址空間分爲與頁框大小相等的塊,稱之爲頁面(頁),每個頁面的編號稱之爲頁號
頁表
- 操作系統爲每個進程創建一個頁表
- 每一頁(頁面)對應一個頁表項,每個頁表項長度相等(頁表長度=頁面個數s,每項的位數=內存號範圍所站的字節 頁面大小4KB 物理內存大小2MB,內存號範圍=221/212=2^9B 爲2個字節)
- 每個頁表項由頁號和內存號組成
- 頁表記錄頁面和內存塊之間對應的關係
計算
事前準備
頁號:邏輯地址/頁面長度
頁內偏移量:邏輯地址%頁面長度
物理地址=起始地址+頁內偏移量
頁面長度 爲 2^20B 可以得出:
- 頁內偏移量的位數是20位
- 內存塊的大小爲2^20B(內存塊=頁面)
邏輯地址長度爲2^30B , 頁面長度爲2^20B,可以得出:
- 頁號的位數是10位
對上面的在變個型 有M位頁號代表什麼,有N位頁內偏移量代表什麼
- M 代表 有2^M個頁面 . N 代表有N頁面大小爲2^N B
基本地址變換機構
基本地址變換機構可以藉助頁表將進程的邏輯地址轉化爲物理地址
- 計算 頁號 和 頁內偏移量
- 判斷頁號P 是否大於等於 頁表長度M P>=M 則產生越界中段
- 頁表中頁號P所對應的頁表地址=頁表起始地址+P*頁表項長度,從該地址中取出內存塊號 b
- 物理地址=b*頁面大小+頁內偏移量
例題
引入快表
- 頁表又稱爲慢表。
- 快表又稱聯想寄存器 TLB 是一種訪問速度很快的高速緩衝儲存器
- 引入塊表後,快表可儲存訪問過的頁面,及內存塊號,之後就可以直接通過快表訪問物理地址對應的內存單元,因爲只訪問了一次內存,所以可以節省訪問時間(不用快表則需兩次訪問內存,訪問頁表一次,訪問內存單元一次)
注意使用快表後的時間計算