下图是EXE文件加载到内存并启动两个进程之后的内存状态
说明:
1 之所以以页面为单位来组织各个部分,是因为多个进程在内存中可以共享页面来只读访问。从而一份页面可以给多个进程实例使用。
2 如果需要修改一个数据页面中的全局变量,当前进程会在写之前先复制一份出来,写这个复制之后的副本,并以后都用这个副本。其他进程实例不受影响。
3 DLL也是一样的结构,只不过EXE里面有程序入口点而已。
下图是EXE文件加载到内存并启动两个进程之后的内存状态
说明:
1 之所以以页面为单位来组织各个部分,是因为多个进程在内存中可以共享页面来只读访问。从而一份页面可以给多个进程实例使用。
2 如果需要修改一个数据页面中的全局变量,当前进程会在写之前先复制一份出来,写这个复制之后的副本,并以后都用这个副本。其他进程实例不受影响。
3 DLL也是一样的结构,只不过EXE里面有程序入口点而已。