Windows核心编程:内存体系结构

来源:互联网 发布:php acl访问控制列表 编辑:程序博客网 时间:2024/05/18 03:48

1. 进程的虚拟地址空间

       每个进程都有自己的虚拟进程空间,对32位进程来说,这个地址空间的大小为4GB。因为32位指针可以表示从0x00000000到0xFFFFFFFF之间的任一值。每个进程都有字节专有的地址空间,当进程中的各线程运行时,它们只能访问属于该进程的内存。线程既看不到其他进程的内存,也无法访问它们。


        虚拟地址的分区:

空指针赋值分区,用户模式分区,64KB禁入分区,内核模式分区。


空指针分区是进程地址空间中从0x00000000到0x0000FFFF的闭区间,帮助程序员捕获对空指针的赋值,如果进程中的线程试图读取或写入位于这一分区内的内存地址,就会引发访问违规。


用户模式分区:进程无法通过指针来读取,写入或以任何方式,访问驻留在这一分区中其他进程的数据。对所有的应用程序来说,进程的大部分数据都保存在这一分区。(在Windows中,所有.exe和动态链接库都载入到这一区域。每个进程都有可能将这些DLL载入到这一分区的不同地址,系统同时把该进程可以访问的所有内存映射文件映射到这一分区。)


内核模式分区:是操作系统代码的驻地。与线程调度,内存管理,文件系统支持,网络支持以及设备驱动程序相关的代码都载入到该分区。



0 0
原创粉丝点击