Windows内存体系结构

  理解一个系统的内存体系结构能够让你对系统内部是怎么运作的有一个更深入的了解;能够使你知道怎么在两个进程之间共享数据、系统在哪里存放了我们的数据以及怎样编写更高效的应用程序。

  在32位的Windows系统中,每一个进程有4G的虚拟地址空间,之所以说是虚拟的,因为4G只是一个地址空间,一个数值而已,应用程序实际能够使用的内存还是要视计算机中实际的物理内存而定(包括系统提供的页面文件)。

  进程虽然拥有4G的地址空间,但是并不是所有的地址空间都能为进程使用。进程的地址空间被分为下面几个模块。

模块 32位Windows系统
NULL 指针区域

0x00000000-0x0000FFFF

 用户模式区域

0x00010000-0x7FFEFFFF

 64KB限制区域

0x7FFF0000-0x7FFFFFFF

 内核模式区域

0x80000000-0xFFFFFFFF

  从上面表格中我们可以看到,进程实际能够使用的地址空间不足2G(用户模式区域),这个区域的地址对于进程是私有的,进程不能访问或者写入其他进程位于这块区域内的数据。NULL指针区域用于应用程序捕捉NULL指针。内核模式区域是操作系统使用,比如线程调度、内存管理、文件系统、驱动文件等等位于这个区域;所有位于这个区域的数据、代码为所有进程共享。

posted @ 2012-03-28 21:32  pzxbc  阅读(767)  评论(0编辑  收藏  举报