給區域調撥物理存儲器

 給區域調撥物理存儲器:

爲了使用所預訂的地址空間區域,我們還必須分配物理存儲器,並將存儲器映射到所預訂的區域。這個過程被稱爲調撥(committing)物理存儲器。物理存儲器始終都以頁面爲單位來調撥。我們通過調用VirtualAlloc函數來將物理存儲器調撥給所預訂的區域。

當我們調撥物理存儲器給區域時,並不需要給整個區域都調撥物理存儲器。例如,我們可以預訂一塊大小爲64 KB的區域,然後把物理存儲器撥給該區域中的第2個頁面和第4個頁面。圖13-1顯示了在這種情況下進程的地址空間會是什麼樣子。注意,地址空間會根據CPU平臺的不同而有所不同。左面顯示的是x86/x64機器上(頁面大小爲4 KB)的地址空間,而右面顯示的是IA-64機器上(頁面大小爲8 KB)的地址空間。

 
圖13-1  不同CPU上的進程地址空間示例
當程序不再需要訪問所預訂區域中已調撥的物理存儲器時,應該釋放物理存儲器。這個過程被稱爲撤銷調撥(decommitting)物理存儲器,通過調用VirtualFree函數來完成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章