2014-12-22 109 views
1

在Windows下,內核可以將物理內存頁交換到頁面文件中的頁面。頁面文件中物理頁面和頁面之間的關係是什麼?

爲簡單起見,我們假設只有一個分頁文件。

據我所知,頁面文件由具有相同大小的物理內存頁面的頁面組成。即4K。

我只是想知道:

如何內核知道哪個頁面在頁面文件是免費存儲?

免費在這裏是指在分頁文件沒有事先存儲的另一個物理內存的頁面。)

+1

只要有上下文切換,並且每當進程頁出現故障並且有權獲得更多內存,物理內存就會映射到虛擬內存。因此,內核有一個關於物理內存頁面的「最後使用」時間的想法,並且可能大概會選擇將這些內容驅逐到一段時間內沒有被請求的磁盤。 –

+0

這個問題似乎是無關緊要的,因爲它涉及操作系統設計,而不是一個特定的編程問題。如果您可以根據編程問題(例如需要知道該信息才能正常工作的代碼)來對此進行重新說明,那麼這將是主題。 –

+0

http://stackoverflow.com/questions/18431261/how-does-x86-paging-work –

回答

1

在過於簡單化的風險。 。 。實現虛擬內存的常用方法是磁盤是主存儲器。除非映射到文件,否則虛擬頁面不存在。該映射在整個過程的生命週期中保持不變。

磁盤上的虛擬內存在可用時被映射到物理內存。

內核維護一些數據結構(例如位圖)來指示頁面文件和其他結構的空閒區域,以維護邏輯地址到文件的映射。

1

我相信你在詢問頁面替換算法內存管理。

當操作系統需要在內存中保存新頁面並跟蹤頁面文件(也稱爲頁面表)上的信息時,不能保證會有空閒位置 - 意味着其他位置網頁的信息可能佔用了所有的資料。在這種情況下,操作系統將必須evict現有頁面。操作系統不需要可用空間,因爲如果沒有的話,它就會成功。

如果您有興趣瞭解更多(這是一個相當大的話題),您可能會發現紐約大學「操作系統」課程的lecture notes有幫助。 This is the demand paging unit,在下面你可以閱讀幾個頁面替換算法(「WS Clock」和「Aging」可能是最重要的)。

希望這會對您有所幫助!

相關問題