一个进程的诞生于死亡

执行一个程序,必然就产生一个进程,最直接的程序执行方式就是在shell中以鼠标双击某个可执行的行文件图标,执行起来的app进程其实是shell调用createprocess激活的,看看整个流程:

1,shell调用creaeprocess激活app。exe

2,系统产生一个“进程核心对象”,计数值为1.

3,系统为此进程建立一个4GB地址空间。

4,加载器将必要的代码加载到上述地址空间中,包括app。exe的程序,数据,以及所需的动态链接库。加载如何知道要加载哪些dlls呢?他们被记录在可执行文件的.idata section中/

5,系统为此进程建立一个线程,称为主线程。线程才是CPU时间的分配对象。

6,系统调用C runtion 函数库的Startup code/

7,Startup code 调用app 程序的winmain函数。

8,app程序开始执行/

9,使用者关闭app主窗口,使winmain中的消息循环结束掉,于是winmain结束。

10,回到startup code/

11,回到系统,系统调用exitprocess结束进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值