2012-07-21 85 views
0

在需求分頁中,數據是從磁盤複製到主內存中的,還是被傳輸到主內存中,在磁盤中什麼也沒有留下來?需求分頁時數據是否留在磁盤上?

+0

你認爲「轉移」會是什麼樣子? – 2012-07-21 22:49:34

回答

2

什麼都沒有「移動」。數據不是一張紙,一次只能在一個地方;它被複制到內存中,然後它仍然在磁盤上。將其擦除在磁盤上意味着用不同的數據覆蓋它,在讀取之後需要額外的時間。

它最終可能會被覆蓋,因爲系統當然會知道交換的哪些部分仍然有效並且需要數據,哪些部分被視爲「未使用」。

0

其實以上都不是。傳統上,每當請求時,進程和文件都將其內容複製到內存中。然而,在需求分頁的情況下,情況並非如此。當請求將文件加載到內存中時,操作系統將該文件標記爲位於進程的虛擬地址空間內,但實際上並未分配內存或複製文件。只要進程讀取或寫入該內存區域,處理器就會拋出操作系統陷入的故障。操作系統然後將該文件的內容複製到頁面,然後只有。這具有節省內存的效果,因爲只分配了實際訪問的頁面。堆分配也是如此。如果一個程序請求一大塊內存,那麼在程序使用該內存之前實際上不會分配它。

相關問題