一个进程的生与死
Windows中的资源管理器其实是一个Shell.在资源管理器里面双击执行一个App实际上是shell 调用CreateProcess 创建一个进程
1.shell调用CreateProcess激活App.exe
2.系统产生一个“进程核心对象”,计数值为1.
3.系统为此进程建立一个4GB的地址空间。
4.加载器将必要的代码加载到上述地址空间中,包括App.exe的程序,数据,已经所需要的动态连接库。这些动态连接库的信息被记录在可执行文件里面
5.系统为此建立一个线程,主线程。
6.系统调用C runtime函数库的Startup code.
7.Startup code调用App.exe程序的WinMain函数.
8.App开始运行
9.使用者关闭App主窗口,使WinMain中的消息循环结束,WinMain结束.
10.回Startup code.
11.回到系统,系统调用ExitProcess结束进程.
shell在调用CreateProcess的时候已经把父子进程之间的关系切断。

浙公网安备 33010602011771号