以前写过一篇理解程序内存, 当时主要是针对用户态,下面再稍微深入一点: 我们以32位程序为例(不启用AWE), 总共4G虚拟空间,其中低2G属于用户态, 高2G属于操作系统内核, 每个程序都有自己的低2G用户空间, 高2G内核空间是所有程序共享的.高2G内核空间中, 属于同一Session的程序又共享相同的session空间: x86系统所有的内存以64K边界粒度, 4K页面大小分配. 用户态的内存空间,按用途分可以分为: image, mapped file, heap, stack, fre…