重點理解、記憶基本位址變換機構(用於實現邏輯位址到實體地址轉換的一組硬體機構)的原理和流程。
1.存放頁表起始位置
2.存放頁表長度
基本位址變換機構可以借助程序的頁表將邏輯位址轉換為實體地址
通常會在系統中設定乙個頁表暫存器(ptr),存放頁表在記憶體中的起始位址f和頁表長度m。程序未執行時,頁表的起始位址和頁表長度放在程序控制塊(pcb)中,當程序被排程時,作業系統核心會把他們放到頁表暫存器中。
注意:頁面的大小是2的整數冪
設頁面的大小為l,邏輯位址a到實體地址e的變換過程如下:
1.根據邏輯位址計算出頁號、頁內偏移量
2.判斷頁號是否越界(頁號和頁表的長度m進行比較,頁表是存在連續記憶體空間中,並從0開始,當頁號和長度m相等時,也屬於越界)
3.查詢頁表,找到頁號對應的頁表項,確定頁面存放的記憶體塊號(頁框號)
4.用記憶體塊號和頁內偏移量相加得到實體地址。(注意乙個記憶體塊中還有n個位址)
設頁面大小為l,邏輯位址a到實體地址e的變換過程如下:
1.計算頁號p和頁內偏移量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去訪存(如果記憶體塊號、頁面偏移量是用二進位制表示的,那麼把二者拼起來就是最終的實體地址了)
例項:
每個頁表項的長度是相同的,頁號是「隱含」的
例項:假設某系統物理記憶體大小為4gb,頁面的大小為4kb,記憶體總共會被分為2^32 除以2的12次方=2的20次方個記憶體塊
所以記憶體塊號的範圍應該是0~(2^20 - 1 )
因此至少要20個進製位才能表示這麼多的記憶體塊號。因此至少要3個位元組才夠
各頁表項會按順序連續的儲存在記憶體中,如果該頁表在記憶體中存放的起始位址是x,則m號頁對應的頁表項是存放在記憶體位址為x+3*m
乙個頁面為4kb,則每個頁框可以存放4096/3=1365個頁表項,但是這個頁框會剩餘1b的頁內碎片。因此,1365號頁表項存放的位址為x+31365+1
如果每個頁表項佔4位元組,則每個頁框剛好可存放1024個頁表項
1024號頁表項雖然是存放在下乙個頁框中的,但是它的位址依然可以用x+41024得出
1.根據邏輯位址算出頁號、頁內偏移量
2.頁號的合法性檢查(與頁表長度對比)
3.若頁號合法,再根據頁表起始的位置、頁號找到對應頁表項
4.根據頁表項中記錄的記憶體塊號、頁內偏移量得到最終的實體地址
5.訪問物理記憶體對應的記憶體單元
1.頁內偏移量位數與頁面大小之間的關係(要用其中乙個條件推出另乙個條件)
2.頁式管理中位址是一維的
3.實際應用中,通常使乙個頁框恰好能放入整數個頁表項
4.為了方便找到頁表項,頁表一般放在連續的記憶體塊中。
基本位址變換機構
基本位址變換機構可以借助程序的頁表將邏輯位址轉換為實體地址。通常會在系統中設定乙個頁表暫存器 ptr 存放頁表在記憶體中的起始位址f和頁表長度m。程序未執行時,頁表的始址和頁表長度放在程序控制塊 pcb 中,當程序被排程時,作業系統核心會把它們放到頁表暫存器中。注意 頁面大小是2的整數冪,設頁面大小...
位址變換機構
請求分頁系統中的位址變換機構是在分頁系統位址變換機構的基礎上,為實現虛擬儲存器,增加某些功能形成的。在進行位址變換時,首先檢索快表,試圖從中找出所要訪問的頁。若找到,便修改頁表項中的訪問位。對於寫指令,還需要把修改位置成1,表示該頁在調入記憶體之後被修改。然後利用頁表項中給出的物理塊號和頁內位址形成...
分頁系統的位址變換機構
位址變換機構 位址變換過程 1 分頁位址變換機構將相對位址分為 頁號,頁內位址 頁號 p int a l 頁內位移量 w amodl 2 讀取ptr 中的頁表長度。if頁號 頁表長度 thengoto 3 else 越界中斷 3 讀取ptr 中的頁表始址,計算 頁表始址 頁號 頁表項長度 得到該頁表...