我通過的Tanenbaum的「現代操作系統」一書的學習和剛讀的書以下段落:進程啓動時分頁(虛擬內存)系統中會發生什麼?
當一個進程啓動時,其所有的頁表項被標記爲未在內存中。只要引用任何頁面,就會發生頁面錯誤。然後操作系統設置R位(在其內部表中),使用READ ONLY方式更改頁表條目以指向正確的頁面,然後重新啓動指令。如果頁面隨後被修改,則會發生另一個頁面錯誤,允許操作系統設置M位並將頁面的模式更改爲READ/WRITE。
這對我來說似乎極其不利。他建議,當一個進程啓動時,必須發生許多頁面錯誤,並且在執行指令時真正的內存正在被填滿。
對我來說,看起來更合乎邏輯的是,至少進程的文本在開始時放在內存中,而不是放在每個指令執行時(每個指令執行時都有頁錯誤)。
有人能解釋一下這本書解釋的這種方法的優點嗎?