在閱讀頁面錯誤和頁面命中是如何由頁面錯誤異常處理程序處理的時候,有一點我不清楚。如果進程正在使用共享頁面併發生頁面錯誤,那麼當頁面錯誤異常處理程序更新導致頁面錯誤的進程的頁表表項中的頁表項時,它是否也會更新所有頁面中的頁表項共享相同頁面的其他進程?從我對這個主題的閱讀看來,它似乎只更新頁表中錯誤進程的頁表項,但其他進程怎麼知道該頁已被分頁呢?提前致謝!頁面錯誤異常處理程序和更新頁表
1
A
回答
0
這是您在設計內存管理器時必須解決的問題之一。一種可能的設計是爲每個可以共享的頁面設置一個影子PTE。當共享頁面上的進程發生故障時,內存管理器會檢查影子PTE。如果影子PTE不駐留,它將以正常方式處理頁面錯誤,當頁面可用時更新錯誤處理PTE和影子PTE。如果影子PTE是駐留的,那麼它只是將影子PTE複製到進程PTE。當進程實際觸及頁面時,這種方式只會更新PTE。這就是我認爲Windows的做法 - 我對Linux的瞭解有限,但由於幾乎Linux進程中的每個頁面都可以隨時共享(由於分叉),所以我期望他們有不同的方式來處理共享,而不必爲系統中的每個頁面都設置影子PTE。
在這個模型中,如果你有異步頁面錯誤處理,那麼需要一些聰明才智,因爲你需要處理頁面上的另一個進程發生故障時的情況。你還需要處理頁面輸出的情況。在這種情況下,您需要瀏覽每個包含其工作集頁面的進程並將其刪除,這可能需要一些IPI和一些記錄。
相關問題
- 1. 異步頁面和處理程序
- 2. xv6 rev6頁面錯誤處理程序
- 3. 錯誤頁面註冊器和全局異常處理
- 4. 用戶自定義頁面錯誤和異常處理
- 5. 帶有異常處理應用程序塊的MVC錯誤頁面
- 6. 錯誤和異常處理
- 7. 錯誤發生異常處理JSP頁面
- 8. HTTP錯誤 - 頁面處理
- 9. 處理aspx頁面錯誤
- 10. PHP錯誤處理和異常處理?
- 11. 發生異常處理JSP頁面/registration.jsp
- 12. 處理JSP頁面出現異常
- 13. asp.net頁面處理程序
- 14. MVC6 - 處理未處理的異常,仍然有錯誤頁面重定向
- 15. .NET異常處理程序頁面:如何顯示行號異常?
- 16. jsf中的異常處理 - 在新頁面中打印錯誤消息
- 17. 遞歸頁錯誤處理程序
- 18. 意大利麪代碼,處理異常處理和錯誤?
- 19. 從屬性表頁處理程序拋出的異常
- 20. 如何使用頁面錯誤處理程序來映射頁面?
- 21. 單選按鈕更改處理程序刷新頁面
- 22. 防止頁面或處理程序更新FormsAuthentication標籤
- 23. org.apache.jasper.JasperException:JSP頁面刷新時拋出java.lang.NullPointerException異常,如何處理?
- 24. Artisan命令的自定義錯誤和異常處理程序
- 25. Python異常/ ValueError異常/錯誤處理
- 26. Linux內核中的主要頁面錯誤處理程序
- 27. 使用你自己的頁面錯誤處理程序
- 28. MVC 6錯誤處理程序沒有顯示視圖頁面?
- 29. 頁面呈現期間出現異常時的錯誤頁面
- 30. 異常處理錯誤