2017-05-12 40 views
2

用於將32位字加載到寄存器中的機器語言指令 包含要加載的字的32位地址。 這條指令可能導致頁面錯誤的最大數量是多少?讀取指令可能導致頁面錯誤的最大數目?

(的Tanenbaum,OS,Q 44)

它看起來像沒有道理的,它會導致只有1頁錯誤。當它試圖訪問32位字時。 (我對這個問題的理論,請隨意忽略,因爲它可能包含許多錯誤或混淆的事實。)

請告訴我這個問題的正確解決方案是什麼。

回答

2

CPU將嘗試獲取在虛擬地址,則MMU發現該命令將嘗試將虛擬內存翻譯爲物理內存只是爲了發現頁表不在主存儲器,(首頁故障)。然後,在包含頁表的頁面被帶到主存儲器後,我們發現頁面不是目前(第二頁錯誤)

缺頁被帶到主存儲器,現在CPU可以讀取命令,該命令被解析,一個值從虛擬地址0xF0E54014帶來的,它必須被翻譯到物理內存,再次頁表不在主內存(第三頁故障),現在我們有我們再次發現的物理地址,這是不是在主內存(第四頁錯誤)

(我可能失去了一些東西),但顯示你的答案確實是可以大於1



附: 如果您不知道頁面是否在主內存中,我該如何判斷: Page-Table中的每個條目都有標誌,其中一個用於告知頁面是否在主內存中。

相關問題