一、进程组
1.每个进程组有一个组长进程,进程组的ID=组长进程的ID
2.进程组长可以创建一个进程组,组长进程终止其进程组不一定终止
3.进程调用setpgid(pid pid , pid_t pgid )参加现存的组或者创建一个新进程组。
如果 pid= pgid 则由pid指定进程变成进程组组长
如果pid =0 则使用调用者的进程ID
如果pgid=0,则由pid指定的进程ID被作为进程组ID、
二、对话期
一个或多个进程组的集合
pid_t setsid(void) 建立一个新对话期,成功返回进程组ID
如果调用此函数的进程不是一个进程组组长,则此函数创建一个新的对话期。
结果
1)此进程成为新对话期的对话期第一个进程
2)此进程成为一个新进程组的组长进程
3)此进程没有控制终端
如果是一个进程组的组长,则函数出错。fork一个子进程的好处保证不会是进程组组长。
三、控制终端
1.一个对话期可以有一个单独的控制终端。
2.建立与控制终端连接的对话期首进程,称为控制进程。
3.一个对话期中的几个进程组可被分为一个前台进程组以及一个或几个后台进程组
4.无论何时键入中断键(常是DELETE或Ctrl-C)或退出键(常是Ctrl-\),就会造成将中断
信号或退出信号送至前台进程组的所有进程。
四、孤儿进程组
1.一个父进程已终止的进程称为孤儿进程,这种进程由init进程收养。
2.孤儿进程组:该组的每个成员的父进程或者是该组的一个成员,或者不是该组所属对话期的成员。
描述为:一个进程组不是孤儿进程组的条件是:该组中有一个进程,其父进程在属于同一对话期的另一个
组中。
阅读(398) | 评论(0) | 转发(0) |