2014-10-17 133 views
1

在這張圖中,虛擬地址空間大於物理地址空間。它有可能是相反的嗎?這將如何工作,因爲如果虛擬地址空間更小,那麼虛擬地址空間如何有足夠空間引用物理地址空間中的所有內容?虛擬地址空間大小vs物理地址空間大小

+0

這聽起來像http://en.wikipedia.org/wiki/Physical_Address_Extension和其他較早的系統 – 2014-10-17 12:10:33

+0

這裏可能是頂級的。但請注意,如果在該圖上的*箭頭*數量少得多 - 比如說只有一個 - 您可以將左側的地址空間縮小到更小的尺寸 - 並且所有這些都會導致右側的頁面更多粉。爲了解決所有的物理內存問題,你所要做的就是改變一個箭頭指向的地方。 – 2014-10-17 12:12:23

回答

1

如何將這項工作,因爲虛擬地址空間會如何有足夠的空間在物理地址空間來引用一切,如果它的體積更小?

它沒有足夠的空間,這根本不成問題。爲什麼每個虛擬地址空間需要覆蓋全部物理內存?事實上,在大多數電腦上幾乎從未發生過。虛擬內存的動機之一就是分離每個進程的內存,這樣他們就不會踩到彼此的腳趾。

即使在您的照片中,虛擬地址空間也不會引用物理地址空間中的所有內容。紅色頁面不屬於該進程,這意味着它們不會出現在虛擬地址空間中。

使用PAE的32位計算機使用多於4個GiB物理內存就是一個例子。每個虛擬地址空間最多爲4 GiB,即使可以使用8 GiB或更多的物理RAM。

+0

那麼,虛擬空間多大於或小於物理空間的後果呢?這僅僅是你可以擁有多少參考資料?還是有更多的參考資料? – Ogen 2014-10-17 12:23:37

+1

@Clay什麼後果?就進程而言,它有X字節的內存,就是這樣。就操作系統而言,沒有什麼變化。那麼,一些實現細節(如頁表的佈局或MMU硬件的訪問方式)可能會發生變化,但是沒有什麼大的概念性轉變。這只是更多的物理記憶。 – delnan 2014-10-17 12:27:59

+0

這真的是很好的東西,你可以詳細說一下如何改變頁面表格嗎? – Ogen 2014-10-17 12:30:49