內存分爲兩部分
1)某些內存部分爲操作系統系統進程保留
2)用戶進程的剩餘內存。
32位操作系統爲OS進程分配4GB內存。像這樣爲64位操作系統分配了多少內存空間(僅用於系統進程的內存空間,即操作系統進程)。這個問題在採訪中問我64位操作系統內存分配
回答
我不清楚這個問題對Windows有多特別。從一般的角度來看,你可以得到40億美元,即4GB。所以2 會給你16 exabytes(!)
查看here瞭解更多信息。
一個64位寄存器可以存儲264(超過18位)不同 值。因此,具有64位存儲器地址的處理器可以直接訪問字節可尋址存儲器的264字節(= 16 exbibytes)。
請注意附帶條件。外部巴士。僅僅因爲CPU寄存器是64位寬,它並不是必然意味着外部總線將是相同的寬度。因此,CPU和機器架構一起將決定實際的限制。請注意標記爲Limitations of Practical Processors的部分。
真的不是真的畢竟。
Windows帶有不止一個內核或變體。
例如,市場上有Windows操作系統,內核支持PAE,這足以證明您的陳述並非如此。
此外,Windows的32位桌面版本無法提供4Gb的可尋址內存,但只有〜3.5。
編輯 參考this link瞭解詳細信息。
最大內存地址空間取決於您擁有的操作系統版本。
見Physical Memory Limits: Windows 7
一些更多的閱讀關於這方面Pushing the Limits of Windows: Physical Memory和Pushing the Limits of Windows: Processes and Threads
你可以在32位Windows 7上安裝4GB,但是你將永遠無法使用4GB與32位Windows下的任何進程。這個表格指的是物理限制,而不是限制每個進程的限制。 – user1802174
@ user1802174我認爲OP在採訪中的問題沒有得到很好的表述。我想他應該回答「更多,但完全取決於操作系統和CPU架構」 –
- 1. 操作系統內存分配地址
- 2. 操作系統內存分配
- 3. 32位/ 64位操作系統?
- 4. PHP內存vs操作系統分配的內存
- 5. 閱讀文件存儲器的內容,導致32位操作系統和64位操作系統
- 6. 64位內存分配
- 7. 64位機內存分配
- 8. 64位操作系統的Microsoft.Win32.RegistryKey
- 9. 如果操作系統是64位
- 10. Lotus Notes Interop.Domino.dll 64位操作系統
- 11. Windows 64位操作系統上的32位或64位Android SDK?
- 12. 確定從32位操作系統或64位操作系統C/C++應用
- 13. 在64位操作系統上運行的32位程序內存消耗
- 14. 淨WinForm的系統提示音在64位操作系統
- 15. 64位系統上的32位應用程序的內存分配限制
- 16. 圖像分析和64位操作系統
- 17. 刪除IE緩存編程方式在64位操作系統
- 18. Java JVM保持對操作系統的內存分配
- 19. 操作系統,C和進程的內存分配
- 20. 什麼數據類型是32位操作系統中的16位和64位操作系統中的32位?
- 21. 從哪裏JVM在64位操作系統中獲取內存堆?
- 22. 移動到64位操作系統時的共享內存性能降低
- 23. 64位操作系統上的32位或64位應用程序?
- 24. 模塊化計算32位與64位操作系統
- 25. 關於64位和32位的Mac操作系統
- 26. 32位DLL不能在64位操作系統
- 27. 64位操作系統上的32位ActiveX DLL的問題
- 28. 使用arm v8運行32位和64位操作系統
- 29. 32位dll 64位操作系統與regsvr32.exe
- 30. 安裝在64位操作系統上的Windows 32位Eclipse?
這並不完全回答這個問題。 –
@Cthulhu當OP將完成編輯我將再次回覆 – user1802174