笔记 关于进程

来源:互联网 发布:java io read 编辑:程序博客网 时间:2024/05/16 12:18

关于进程

 

 进程的组成:

 

1 内核对象,存放关于进程统计信息的地方

 

2 地址空间 包含可执行模块和dll模块的代码和数据。还有动态分配的空间。如线程堆栈和堆分配空间。

 

 

 

 

主线程的进入点函数:即m a i n、w m a i n、Wi n M a i n或w Wi n M a i n

 

 

 

 

1 进程终止运行时的事件

 

 

当进程终止运行时,下列操作将启动运行: 

1) 进程中剩余的所有线程全部终止运行。 

2) 进程指定的所有用户对象和G D I对象均被释放,所有内核对象均被关闭(如果没有其他 进程打开它们的句柄,那么这些内核对象将被撤消。但是,如果其他进程打开了它们的句柄, 内核对象将不会撤消)。 

3) 进程的退出代码将从S T I L L _ A C T I V E改为传递给E x i t P r o c e s s或Te r m i n a t e P r o c e s s的代码。 

4) 进程内核对象的状态变成收到通知的状态(关于传送通知的详细说明,参见第9章)。系 统中的其他线程可以挂起,直到进程终止运行。 

5) 进程内核对象的使用计数递减1。

注意,进程的内核对象的寿命至少可以达到进程本身那么长,但是进程内核对象的寿命可能大大超过它的进程寿命。当进程终止运行时,系统能够自动确定它的内核对象的使用计数。如果使用计数降为0,那么没有其他进程拥有该对象打开的句柄,当进程被撤消时,对象也被撤消。

 

 

 2、创建子进程

 

创建子进程的必要性,为什么不用子线程呢

 

数据同步的问题,子线程会和同一个地址空间内的其他线程共享地址空间,出错时可能会破坏重要数据

 

使用子进程,如果要读写父进程的一些数据,可以通过ole,邮箱,内存映射等机制来

 

 

3 独立的子进程

 

创建子进程之后,在父进程中关闭掉 子进程的主进程和子线程对象句柄。

 

 

4 P r o c e s s I n f o 枚举系统中进程的工具。