内存管理之二

类别:VC语言 点击:0 评论:0 推荐:

Virtual Address Space(虚拟地址空间)

 

 虚拟地址表示的是进程中非实际物理地址的位置。换句话说就是,系统为每个进程维护着一个页面映射,这个页面映射是一个内部的数据结构,它的作用是将虚拟地址转换为相应的物理地址。

 虚拟地址空间分为以下几部分:

Windows NT 4.0 SP3 Server Enterprise Edition, Windows 2000 Advanced Server, and Windows .NET Enterprise Server:一般的,进程能够使用低端的3GB空间(0x00000000 到 0xBFFFFFFF)。高端的1GB内存(0xC0000000 到 0xFFFFFFFF)为系统保留部分。

Windows NT/2000/XP: 进程能够使用低端的2GB内存(0x00000000 到 0x7FFFFFFF),高端的2GB内存(0x80000000 到 0xFFFFFFFF)系统保留。

Windows 95/98/Me: 对应描述如下表

区间

用途

0K - ~64K (0xFFFF)

不可写。这块区域大约应是为系统装载一些MS-DOS的特性而保留的。这块内存对于进程而言是私有的。

~64K (0x10000) -
4 MB (0x3FFFFF)

为兼容MS-DOS保留。这块内存对进程而言可读可写。然而,这段区域有可能保存着一些MS-DOS相关的结构或代码,所以进程不应该在这段区域随意读出或写入。这块内存对于进程而言是私有的。

4MB (0x400000) -
2GB (0x7FFFFFFF)

用于代码和用户数据。用户数据可读可写。代码是只执行的。这块内存对进程而言是私有的。

2GB (0x80000000) -
3GB (0xBFFFFFFF)

共享区。对于所有进程都可读写。一些系统的动态连接库和其它一些数据装载到这段区域。

3GB (0xC0000000) -
4GB (0xFFFFFFFF)

系统内存。对任意进程都是可读可写。然而,需要注意的是,这段内存是保存低等级的系统代码的地方,所以,向这片区域写入数据可能会破坏系统可能造成灾难性后果。.

 

详情请参阅MSDN

Virtual Address Space and Physical Storage Page State Scope of Allocated Memory

 

下期预告:

Virtual Memory Functions  (虚拟内存函数族)

本文地址:http://com.8s8s.com/it/it2005.htm