天天看點

一道分頁存儲和缺頁中斷題

一道分頁存儲和缺頁中斷題
一道分頁存儲和缺頁中斷題
一道分頁存儲和缺頁中斷題

分析:

1)按位元組編址,意味着一個位址存放一個位元組,即1 Byte,8位。一個記憶體位址,也稱為一個記憶體單元。

2)頁面大小為1K(2^10B),則一頁存放1024個位址,即1024個單元。

3)虛拟頁式存儲,則系統需要建立頁面映射表,即虛拟記憶體(邏輯記憶體)中的頁号與實體記憶體頁号的對照表,稱為頁表。頁表存放于記憶體,程序執行過程時,首先查找頁表,根據索引結果,取指或取資料。

由于一個位址(單元)是1Byte,而題目中的指令和資料都為16位,則占據2Byte,分為高位元組和低位元組。是以無論是取指令或取資料,都需要讀2次頁表,取2次值,即通路4次記憶體。現在指令 1 條,資料 2 個,合共通路記憶體 4 * (1 + 2) = 4 * 3 = 12 次。

為什麼取指或取資料,要查頁表?頁表隻不過是邏輯頁号和實體頁号的對照表而已。是因為系統執行的時候,要按照邏輯位址,最終從記憶體中拿到内容進行處理。題幹中指令和資料為16位,則在系統作業中,它們每個都有高位元組和低位元組2個邏輯位址。按位址拿東西,是以要查頁表。

第2問,如上分析,1頁有1024個位址單元,根據題幹描述,指令、資料,都跨頁,因為位址從0開始,1023是第一頁的最後一個單元,3071是第3頁最後一個單元,5119是第五頁最後一個單元。也就是說,指令、資料占據了6頁。難道會産生6次頁面中斷?由于要執行指令,前提就是已經讀到這條指令,是以指令的第一頁不算,隻算後面的5次頁面中斷。

為什麼會産生頁面中斷呢?因為指令和資料事先并沒有在記憶體中,是以要調入記憶體,才能被CPU讀取、執行。

答:

1、應該通路 4 * 3 = 12 次記憶體。

繼續閱讀