给区域调拨物理存储器

 给区域调拨物理存储器:

为了使用所预订的地址空间区域,我们还必须分配物理存储器,并将存储器映射到所预订的区域。这个过程被称为调拨(committing)物理存储器。物理存储器始终都以页面为单位来调拨。我们通过调用VirtualAlloc函数来将物理存储器调拨给所预订的区域。

当我们调拨物理存储器给区域时,并不需要给整个区域都调拨物理存储器。例如,我们可以预订一块大小为64 KB的区域,然后把物理存储器拨给该区域中的第2个页面和第4个页面。图13-1显示了在这种情况下进程的地址空间会是什么样子。注意,地址空间会根据CPU平台的不同而有所不同。左面显示的是x86/x64机器上(页面大小为4 KB)的地址空间,而右面显示的是IA-64机器上(页面大小为8 KB)的地址空间。

 
图13-1  不同CPU上的进程地址空间示例
当程序不再需要访问所预订区域中已调拨的物理存储器时,应该释放物理存储器。这个过程被称为撤销调拨(decommitting)物理存储器,通过调用VirtualFree函数来完成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章