1.地址轉換過程
頁面大小是2的整數冪
設頁面大小為L,邏輯地址A到物理地址E的變換過程:
1.根據邏輯地址計算出頁號、頁內偏移量
2.判斷頁號是否越界
3.查詢頁表,找到頁號對應的頁表項,確定頁面存放的內存塊號
4.用內存塊號和頁內偏移量得到物理地址
5.訪問目標內存單元
詳細過程:
設頁面大小為L,邏輯地址A到物理地址E的變換過程
1.計算頁號Р和頁內偏移量w(如果用十進制數手算,則P=A/L,W=A%L;
但是在計算機實際運行時,邏輯地址結構是固定不變的,因此計算機硬件可以更快地得到二進制表示的頁號、頁內偏移量)
2.比較頁號P和頁表長度M,若P≥M,則產生越界中斷,否則繼續執行。(注意:頁號是從0開始的,而頁表長度至少是1,因此P=M時也會越界)
3.頁表中頁號p對應的:
頁表項地址=頁表起始地址F+頁號p*頁表項長度
取出該頁表項內容b,即為內存塊號。
(注意區分頁表項長度、頁表長度、頁面大小的區別。
頁表長度:指的是這個頁表中總共有幾個頁表項,即總共有幾個頁
頁表項長度:指的是每個頁表項占多大的存儲空間
頁面大小:指的是一個頁面占多大的存儲空間)
4.計算E= b*L+W,用得到的物理地址E去訪問內存空間。(如果內存塊號、頁面偏移量是用二進制表示的,那么把二者拼接起來就是最終的物理地址了)
2.思路
物理地址=內存塊號*頁面大小+頁面偏移量
內存塊號保存在頁表項中的塊號中,所以需要求得頁表項地址
頁表項地址=頁表起始地址F+頁號P*頁表項長度
3.例題
若頁面大小L為1K字節,頁號2對應的內存塊號b=8,將邏輯地址A=2500轉換為物理地址E。
1.先計算頁號P,頁內偏移量W
P=A/L=2500/1024=2,所以頁號為2,由題沒有越界
W=A%L==452,所以頁內偏移量為452
2.因為題中已經給出內存塊號b=8了,所以不用再去計算頁號對應的頁表項地址,然后從頁表項地址中得到內存塊號
3.物理地址E=內存塊號b*頁面大小L+頁內偏移量W
E=8*1024+452=8644
4.總結
在分頁存儲管理(頁式管理)的系統中,只要確定了每個頁面的大小,邏輯地址結構就確定了。因此,頁式管理中地址是一維的。
即邏輯地址轉換為物理地址邏輯地址轉換為物理地址,只要給出一個邏輯地址,系統就可以自動地算出頁號、頁內偏移量兩個部分,并不需要顯式地告訴系統這個邏輯地址中,頁內偏移量占多少位。