2013-02-11 63 views
4

我知道在32位Windows上運行的32位進程的默認頁面大小爲4K,而在64位Windows上運行的64位進程的默認頁面大小爲8K。但是,在64位Windows(即WOW64)上運行的32位進程的實際頁大小是多少? 4K? 8K?在WOW64上運行的32位進程的實際頁面大小是多少?

+0

它仍然是4K。 – 2013-02-11 09:44:32

回答

5

頁面大小爲4K仍然 - 在最大4GB的尋址RAM內存

虛擬內存大小爲1M的頁面。在Intel Itanium處理器上,如果同時運行相同的32位應用程序的兩個或更多實例,WOW64會增加 的重大開銷。這是由於Intel Itanium上的本地8 KB 頁面造成的,這使x86架構上原生4 KB頁面的仿真複雜化(更多頁面標記爲 可寫;所有可寫頁面對於該過程是私有的)。這可能會對某些 處理器上的終端服務的可擴展性產生負面影響。這不適用於x64處理器。

瞭解更多關於WOW64 here

+2

這是關於安騰,它是現有架構,但不是x64,這是人們在談論64b Windows時通常所表達的意思。 – Suma 2013-02-11 13:16:17

+0

@Suma x64位架構來自Itanium。大多數x86體系結構的說法,Pentium來自80386 – 2013-02-11 17:17:13

+4

的方式不一樣,它沒有。 x64是從x86重新開發的。它與Itanium沒有任何共同之處。英特爾開發的Itanium是第一個,並且是從x86開始的徹底改變。 Itanium未在標記的服務器之外使用。 AMD隨後將X64作爲競爭解決方案進行開發,並且非常成功,它也被英特爾使用。見例如[Itanium Wikipedia](http://en.wikipedia.org/wiki/Itanium#Other_markets)「AMD選擇了一個不同的方向,設計了不太重要的x86-64,這是對現有x86架構的64位擴展」 – Suma 2013-02-12 08:51:45

7

理想情況下,你應該叫GetSystemInfo()和檢查SYSTEM_INFO.dwPageSize

順便說一句,我懷疑你在64位Windows中有8KB頁面。 x86/64 CPU支持以下大小的頁面:4KB(所有模式),4MB(32位非PAE),2MB(32/64位PAE),1GB(64位,始終爲PAE)。您可以從Intel(或AMD)的CPU手冊中找到它。

2

這個問題的正確答案是「這取決於哪個處理器」。

Itanium使用8KB頁面。

X86-32和x86-64根據需要使用4KB,2MB和1GB頁面[請注意,要使用2MB和1GB頁面,內存需要是2MB/1GB大小的倍數,並且必須與2MB/1GB]。

其他處理器(例如ARM(目前僅支持32位操作系統))通常使用4KB頁面,但也可以使用64KB頁面。

如果你能找到一臺舊的DEC Alpha處理器和操作系統相匹配,那也會使用8KB的頁面。

+1

這是正確的,但正如[Aniket的回答](http://stackoverflow.com/a/14809529/16673)中的引用所示,即使在Itanium上,4KB頁面也適用於x86應用程序。 – Suma 2013-02-12 08:53:12

相關問題