Windows核心编程 - Windows内存体系结构(2)

1. 地址空间中的区域

        当系统创建一个进程时,该进程的地址空间大部分是闲置的或是尚未分配的。如果想使用这部分地址空间,必须调用VirtualAlloc来分配其中的区域(region),分配区域的操作称为预订(reserving)。

         当应用程序预订地址空间区域时,系统会确认区域的起始地址正好是分配粒度的整数倍,分配粒度因不现的CPU平台而不同,目前所有CPU平台都使用相同的分配粒度,64KB。

        当应用程序预订地址空间中的一块区域时,系统会确认区域的大小正好是系统页面大小的整数倍。页面是一个内存单元,大小根据不同的CPU而不同,像X86或X64系统的页面大小为4KB,而IA-64系统的页面大小为8KB。

         当应用程序不再需要访问所预订的地址空间区域,应调用VirtualFree来释放。

2.给区域调拔物理存储器

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

       当调用物理存储器给区域时,并不需要给整个区域都调拔物理存储器,例如可以预订一块大小为64KB的区域,然后把物理存储器调拔给该区域中的第2个页面和第4个页面。

        当不再需要访问所预订区域中已调拔的物理存储器时,应该调用VirtualFree来释放物理存储器。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值