说明
讨论范围是默认的32位的windows NT系统,intel架构。
自己看《Windows内核编程》琢磨出来的东西,也不能确定完全被我理解对了。。
进程虚拟地址空间
32位的操作系统,寻址空间为32Bit,进程的虚拟地址空间为4GB(等于2^32),其虚拟地址空间布局如下所示:
正常情况下,除用户区外,其他的部分程序是不能直接访问的,可以使用类似IsBadReadPtr的函数来检查对目标区的访问权限。
物理存储器
物理存储器即为虚拟地址所关联的真实的物理磁盘,包括内存和硬盘,其主要构成如下所示:
创建进程的时候,首先创建进程的地址空间,该可用地址空间的主体是空闲的,即未分配的,接下来系统给该进程空间保留程序所需的区域(括映像映射区、程序文件映射区以等),最后提交物理存储器给保留的进程区域。对于程序文件映射,其提交的物理存储器即为该程序的内存映射文件(即该程序文件在磁盘上的物理位置)。
关于Windows内存结构
时间: 2024-10-29 15:01:35