2012-04-23 118 views
2

有人寫道,用Windows XP 32位的頂部700 MB或RAM左右是不可用的。但也有人說,安裝超過3GB左右沒有意義。所以這導致我這個問題。那麼這個區域是由os實際駐留在那個ram中保留的,還是隻是使用地址空間。換句話說,內存實際上被填充700mb的信息,或者700MB的cpu地址空間被保留和映射。因爲如果不是這樣,那麼安裝3gbs仍然會是一個問題,因爲它仍然會以700MB的價格拿走?爲什麼Windows XP(32位)限制爲3GB的可用內存?

+0

具有32位「地址總線」的CPU的機器的最大地址空間不能超過4 Gb(2^{32} -1),還要考慮可用於存儲器的地址空間不是可能是整個範圍,因爲映射到地址空間還有其他不是「用戶RAM」的東西,所以可能3 Gb已經「接近」極限了;也許這是問題 – ShinTakezou 2012-04-23 05:53:08

+0

XP確實爲內核預留了一些地址空間;我希望大部分時間內大部分內容都不會被物理內存支持。但是,這意味着沒有任何一個進程可以使用超過3GB的地址空間,因此不超過3GB的物理內存。內核可能仍然能夠將其餘用於其他目的,並且應該可以將剩下的用於其他進程,所以我不明白爲什麼要避免將所有4 GB放入。 – zmccord 2012-04-23 05:55:20

+0

基本上我所要求的是回到真實模式。當前300kb左右的時候是保留的。我認爲這與32位保護模式是同樣的問題。實際上是否有數據駐留在700mb的ram芯片中。或者它是由處理器映射的其他數據或IO位置 – rubixibuc 2012-04-23 05:55:36

回答

4

32位系統有4 GB的可用地址空間,但地址空間不僅僅用於系統內存。例如,視頻卡內存的一部分可以映射到地址空間,這會減少系統內存的可用空間。這在Microsoft的Memory Limits for Windows頁面的「圖形卡和其他設備如何影響內存限制」一節中進行了介紹。

適用的文本低於保存爲後人:

設備必須與 非PAE感知的Windows版本地圖下方的4 GB內存的兼容性。因此,如果系統具有4GB的 RAM,則其中一些可能被禁用,或者被 BIOS重新映射到4GB以上。如果內存重新映射,則X64 Windows可以使用該內存。 X86 客戶端版本的Windows不支持高於4GB 標記的物理內存,因此它們無法訪問這些重新映射的區域。任何X64 Windows或 X86服務器版本都可以。

+0

我猜爲什麼我很困惑,是因爲處理器不能直接訪問視頻內存,還是隻能將它映射到它的可尋址空間?這樣做的意義何在?如果它不在內存中,並且無論如何都可以訪問它,爲什麼這樣引用它會很有用。處理器是否需要首先使用它? – rubixibuc 2012-04-23 06:01:44

+0

它不僅僅是處理器,爲了與設備進行通信,進程還需要一些方法將數據加載到這些區域。在PC上工作使得這一切都非常抽象,但對於嵌入式設備(比如GBA),繪製圖片的唯一方法是將其寫入視頻緩衝區,這只是一個內存地址。當然,執行這些操作可能有「另一種機制」,但使用單一尋址方案是一個簡單的解決方案。 – 2012-04-23 06:07:06

+0

所以基本的想法是,700MB塊不是物理地存放在內存中,而是通過cpu獲取700mb的可尋址空間。所以最好不要安裝大於3gbs左右的ram,因爲這些地址不會被ram使用,而是被保留和映射的。 – rubixibuc 2012-04-23 06:09:50

1

操作系統需要爲各種功能(例如中斷處理程序,系統調用等)預留一些物理地址空間。這些地址對OS上的程序不可用。

相關問題