您的位置:首页 > 产品设计 > UI/UE

UNIX进程概念小结(apue)

2010-03-09 14:05 351 查看
1.进程组

一个进程是一个或多个进程的集合,通常由于相同的作业而联系在一起,能接收相同终端的信号量.

每个进程组可以拥有一个进程组领导,它的进程组ID和进程ID相同.

进程组生命周期----从进程组创建开始到最后一个进程离开该进程组.

一个进程可以设置自己的或者子进程的进程组ID,并且,它不能改变如果子进程调用一个exec函数后它将不能改变其进程组ID.

2.session

一个session是一个或多个进程组的集合.进程通过调用setsid函数建立新的session.

#include <unistd.h>

pid_t setsid(void);

返回值:正常返回进程组ID, 出错返回-1
如果一个进程不是进程组领导,那么setsid函数就可以创建一个新的session.同时会发生如下事件:

该进程成为了新创建的session的session领导.

该进程成为了新创建的进程组的进程组ID,新创建的进程组ID就是该进程ID.

该进程没有控制终端.如果某进程在调用setsid函数之前拥有控制终端,那么调用函数后后该关联将破坏.

3.控制终端

一个session可以拥有一个控制终端.

一个session领导可以建立与控制终端的联系,该进程被称为控制进程.

一个session中的进程组可以分为一个前台进程组和多个后台进程组.

4.孤儿进程组

POSIX.1定义一个孤儿进程组如下:

该进程组的成员进程的父进程要么是该进程组成员,要么是别的session的成员.也就是说只要一个进程组的成员的父进程在同一个session的另一个进程组中,那么该进程组就不是孤儿进程组.

因为进程组由于父进程终止而成为孤儿进程组,POSIX.1规定新产生的孤儿进程组的每一个停止的进程被发送SIGHUP信号后都会接着被发送SIGCONT信号.这就导致子进程当收到挂起信号后会继续执行.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: