給區域調撥物理存儲器:
爲了使用所預訂的地址空間區域,我們還必須分配物理存儲器,並將存儲器映射到所預訂的區域。這個過程被稱爲調撥(committing)物理存儲器。物理存儲器始終都以頁面爲單位來調撥。我們通過調用VirtualAlloc函數來將物理存儲器調撥給所預訂的區域。
當我們調撥物理存儲器給區域時,並不需要給整個區域都調撥物理存儲器。例如,我們可以預訂一塊大小爲64 KB的區域,然後把物理存儲器撥給該區域中的第2個頁面和第4個頁面。圖13-1顯示了在這種情況下進程的地址空間會是什麼樣子。注意,地址空間會根據CPU平臺的不同而有所不同。左面顯示的是x86/x64機器上(頁面大小爲4 KB)的地址空間,而右面顯示的是IA-64機器上(頁面大小爲8 KB)的地址空間。
圖13-1 不同CPU上的進程地址空間示例 |