2015-04-22 54 views
1

我目前正在學習虛擬內存,並且遇到了關於TLB未命中和頁面錯誤的幾個問題。我的理解是:當發生頁面錯誤時,是否將頁面讀入TLB以及PT?

當你有TLB未命中時,你去PT。如果PT有一個命中,那麼很好,你將PT條目從內存複製到TLB。

當你有一個TLB未命中,而你也錯過了當你去PT時,然後你去到磁盤,並將頁面複製到PT。

此時,您已將頁面複製到PT,但是您是否更新了TLB?例如,您是否也將該頁面複製到TLB?或者你只更新PT?

謝謝!

回答

1

你正在離開一些步驟。首先,你要檢查頁表項是否存在。它很可能不會。在這種情況下,你有一個內存訪問陷阱(取決於系統調用它的某種類型)。其次(條目存在),您已將頁面和處理器模式的訪問與頁表條目所允許的訪問進行比較。如果不允許,你有一個內存訪問陷阱。第四,你檢查頁面是否已經映射到內存。如果是這樣,一切都很好。如果不是,則會生成頁面錯誤異常。操作系統必須以某種方式處理。

第五,操作系統需要重新啓動導致故障的指令。

此時,您可能可以將頁面添加到TLB。

相關問題