2013-04-12 64 views
0

當存在TLB未命中並且該頁面不駐留在物理內存中時,該頁面將被寫回到物理內存中,並且頁表和TLB被更新。頁面錯誤,其中存儲了輔助內存地址

但是,二級存儲器的地址存儲在哪裏?它如何知道在哪裏可以找到磁盤上的數據?

+0

StackOverflow適用於實際編程問題,不適用於考試。 –

回答

3

內存管理器維護一個數據結構,其中給定一個虛擬地址,它可以在交換文件中找到磁盤上的相應位置。

顯然,搜索關鍵字不僅僅是地址,它是一對地址和當前地址空間或當前進程的ID(您需要在進程中地址0x8000處的錯誤之間消除歧義) 1和錯誤在過程2中的相同地址0x8000,因爲它們可能不會在0x8000共享內存)。

Page Table Entries在這裏可能很有用。當虛擬到物理映射有效時,它們存儲物理地址。當它無效(因爲交換到磁盤),地址可以設置爲任何你喜歡的。您可以將其位置存儲在磁盤上。但是,如果您希望避免在每次重新使用頁面時將未更改頁面的內容寫入磁盤,並且其內容先前已寫入磁盤並仍與內存中的內容匹配,則這不是一個好主意。 PTE不能同時擁有兩個不同的地址(物理和磁盤)。所以,應該使用專用的數據結構來代替PTE。