有人寫道,用Windows XP 32位的頂部700 MB或RAM左右是不可用的。但也有人說,安裝超過3GB左右沒有意義。所以這導致我這個問題。那麼這個區域是由os實際駐留在那個ram中保留的,還是隻是使用地址空間。換句話說,內存實際上被填充700mb的信息,或者700MB的cpu地址空間被保留和映射。因爲如果不是這樣,那麼安裝3gbs仍然會是一個問題,因爲它仍然會以700MB的價格拿走?爲什麼Windows XP(32位)限制爲3GB的可用內存?
回答
32位系統有4 GB的可用地址空間,但地址空間不僅僅用於系統內存。例如,視頻卡內存的一部分可以映射到地址空間,這會減少系統內存的可用空間。這在Microsoft的Memory Limits for Windows頁面的「圖形卡和其他設備如何影響內存限制」一節中進行了介紹。
適用的文本低於保存爲後人:
設備必須與 非PAE感知的Windows版本地圖下方的4 GB內存的兼容性。因此,如果系統具有4GB的 RAM,則其中一些可能被禁用,或者被 BIOS重新映射到4GB以上。如果內存重新映射,則X64 Windows可以使用該內存。 X86 客戶端版本的Windows不支持高於4GB 標記的物理內存,因此它們無法訪問這些重新映射的區域。任何X64 Windows或 X86服務器版本都可以。
我猜爲什麼我很困惑,是因爲處理器不能直接訪問視頻內存,還是隻能將它映射到它的可尋址空間?這樣做的意義何在?如果它不在內存中,並且無論如何都可以訪問它,爲什麼這樣引用它會很有用。處理器是否需要首先使用它? – rubixibuc 2012-04-23 06:01:44
它不僅僅是處理器,爲了與設備進行通信,進程還需要一些方法將數據加載到這些區域。在PC上工作使得這一切都非常抽象,但對於嵌入式設備(比如GBA),繪製圖片的唯一方法是將其寫入視頻緩衝區,這只是一個內存地址。當然,執行這些操作可能有「另一種機制」,但使用單一尋址方案是一個簡單的解決方案。 – 2012-04-23 06:07:06
所以基本的想法是,700MB塊不是物理地存放在內存中,而是通過cpu獲取700mb的可尋址空間。所以最好不要安裝大於3gbs左右的ram,因爲這些地址不會被ram使用,而是被保留和映射的。 – rubixibuc 2012-04-23 06:09:50
操作系統需要爲各種功能(例如中斷處理程序,系統調用等)預留一些物理地址空間。這些地址對OS上的程序不可用。
- 1. 什麼類型的內存在32位Windows上有2 GB限制?
- 2. 在32位爲什麼地址空間限制爲2^31?
- 3. 在Windows XP 32位上爲Windows Server 2003 64位開發
- 4. 爲什麼android將vm內存大小限制爲任意24或32 MB?
- 5. 爲什麼超出內存限制?
- 6. 爲什麼Tomcat 5.5(Java 1.4,在Windows XP 32位上運行)突然掛起?
- 7. 爲什麼int 32位?
- 8. 爲什麼內存32位只需要1的地圖
- 9. 行爲的在64位Windows(內存)32個應用程序
- 10. 文件DB的Windows XP 32位
- 11. 爲什麼I2C_SMBUS_BLOCK_MAX限制爲32個字節?
- 12. PowerBuilder 10.5應用程序在Windows XP 32位到Windows 7 64位
- 13. 64位系統上的32位應用程序的內存分配限制
- 14. 爲什麼在Windows XP上boost.log崩潰?
- 15. 爲什麼wlanapi.lib丟失在Windows XP SP3
- 16. 檢查Windows XP上的Java JVM內存限制
- 17. 爲什麼在32位機器上有2GB redis.io數據庫的限制
- 18. 爲什麼valgrind在64位架構上僅限於32 Gb?
- 19. 爲什麼Windows Vista 64位默認使用32位cmd.exe? (機專用)
- 20. 爲什麼打算32位尋址
- 21. Windows xp 32位d3d9.dll與Windows 7 64位d3d9.dll
- 22. 爲什麼我的內存超出限制?
- 23. 爲什麼CUDA中的恆定內存大小受到限制?
- 24. 內存可用於運行virtualbox的32位XP主機下的64位Fedora guest虛擬機
- 25. 爲什麼angular.lowercase方法使用'按位或32'將'A'轉換爲'a'?爲什麼不使用'+ 32'?
- 26. 運行Windows XP的Intel x86機器上的內存位置1是什麼?
- 27. 爲什麼Windows XP 32中的Java應用程序在使用內存方面存在如此巨大的差異與Windows 7 64
- 28. 爲什麼我的Ubuntu 32位可以支持6G RAM?
- 29. 爲什麼依賴walker將32位dll顯示爲64位?
- 30. Zend Framework,pdo_mysql和內存限制問題 - 爲什麼?
具有32位「地址總線」的CPU的機器的最大地址空間不能超過4 Gb(2^{32} -1),還要考慮可用於存儲器的地址空間不是可能是整個範圍,因爲映射到地址空間還有其他不是「用戶RAM」的東西,所以可能3 Gb已經「接近」極限了;也許這是問題 – ShinTakezou 2012-04-23 05:53:08
XP確實爲內核預留了一些地址空間;我希望大部分時間內大部分內容都不會被物理內存支持。但是,這意味着沒有任何一個進程可以使用超過3GB的地址空間,因此不超過3GB的物理內存。內核可能仍然能夠將其餘用於其他目的,並且應該可以將剩下的用於其他進程,所以我不明白爲什麼要避免將所有4 GB放入。 – zmccord 2012-04-23 05:55:20
基本上我所要求的是回到真實模式。當前300kb左右的時候是保留的。我認爲這與32位保護模式是同樣的問題。實際上是否有數據駐留在700mb的ram芯片中。或者它是由處理器映射的其他數據或IO位置 – rubixibuc 2012-04-23 05:55:36