參考鏈接:https://blog.csdn.net/weixin_39928544/article/details/90049798
步驟:
如果,虛地址(邏輯地址、程序地址)以十六進制、八進制、二進制的形式給出
第一步,將虛地址轉換成二進制的數;
第二步,按頁的大小分離出頁號和位移量(低位部分是位移量,高位部分是頁號);
第三步,根據題意產生頁表,將位移量直接復制到內存地址寄存器的低位部分;
第四步,以頁號查頁表,得到對應頁裝入內存的塊號,並將塊號轉換成二進制數填入地址寄存器的高位部分,從而形成內存地址。
舉例說明:
1.有一系統采用頁式存儲管理,有一作業大小是8KB,頁大小為2KB,依次裝入內存的第7、9、A、5塊,試將虛地址0AFEH轉換成內存地址。
解:
|頁號|塊號 |
| 0 | 7 |
| 1 | 9 |
| 2 | A |
| 3 | 5 |
虛地址0AFEH轉化為二進制數:0000 1010 1111 1110 (注意虛地址為16進制,最后那個H標志這是一個十六進制數)
已知頁大小是2kb(即,有11位,2^11=2kb),所以低位部分是11位,所以,w=010 1111 1110, p=0000 1=1 (低位部分為頁內地址,高位部分為頁號)
根據頁號與塊號的排列 p=1時,塊號為9,9的二進制數為1001,表首地址為0
所以,MR=(首0)0100 1010 1111 1110(二進制)=4AFEH(16進制)(根據做題步驟,我們要把頁號低位部分移動到地址寄存器中,然后1001當作高位部分,不夠前面補0)
例題:
某請求頁式系統允許用戶空間為32個頁面(每頁1KB),主存為16KB,若一個用戶程序有10頁長,某時刻該進程的頁表如下所示:
虛頁號 物理塊號 是否在TLB中
0 8 是
1 7 是
2 4 否
3 10 否
4 5 否
5 3 是
6 2 是
其他 無效
問:(1)計算虛地址0AC5H、1AC5H對應的物理地址。
(2)頁表存放在主存中,對主存的一次存取需要1.5ns,對TLB表的查找時間忽略為0,試問這兩次訪問共耗費多少時間
答案:
(1)32個頁面需要用5位來區分,頁內地址需要10位。虛地址0AC5H的頁號為2,頁內地址為1011000101。從頁表可知,其物理塊號為4,因此,其物理地址為1001011000101=12C5H。虛地址1AC5H的頁號為6,頁內地址為1011000101。根據頁表可知,該虛地址對應的物理塊號為2,其物理地址為101011000101=0AC5H。
(2)第1次訪問TLB沒有命中,因此需要查找頁表,再訪問主存一次,總計時間為3ns。第2個虛地址在TLB中,只需要一次內存訪問,總時間為1.5ns。
例題:
在一頁式存儲管理系統中,頁表內容見表3-4。若頁的大小為4KB,則地址轉換機構將邏輯地址0轉換成的物理地址為(A )。
表3-4
頁表內容
頁號 塊號
0 2
1 1
3 3
4 7
A.8192
B.4096
C.2048
D.1024
解釋:按頁表內容可知,邏輯地址0對應塊號2,頁大小為4KB,故轉換成的物理地址為2×4K=8K=8192。
例題:
設有8頁的邏輯空間,每頁有1024B,它們被映射到32塊的物理存儲區中。那么,邏輯地址的有效位是__13____位,物理地址至少是__15____位。
解釋:
首先先算邏輯地知址:
邏輯地址:8*1024=2^3*2^10=2^13(所以邏輯地址的后13位為“頁內道地址”,又叫“頁內偏移量”,或“頁內位移”及有效位)
再算物理地址:
物理地址:32*1024=2^內5*2^10=2^15
所以最后的就是邏輯有效位是13;物理有效位是15.
哪里有錯誤,希望指出!!!