一、进程组
(1)概念
我们知道每一个进程除了自己的进程 ID外,还拥有一个进程组ID。
多个进程组成的集合叫做进程组。他们彼此之间不是孤立的,存在父子、兄弟等关系,每个进程都有父进程(除了0号进程),而所有的进程的父进程都是以init进程为根,形成一个树状结构。
如果我们需要发送一个任务到10个进程,让这10个进程去执行,但是如果我们因为某种原因需要终止这项进程,则需要一个一的把这些任务删除,并且还需要按照原来进程间的关系来删除。现在有了进程组,我们如果需要执行任务,则可以将这个任务发送到这个进程组,让这个进程组内所有进程执行,嗯u过想要取消这个任务,则可以通过进程组来取消,并且保证是按照进程间的关系来进行执行的。
(2)进程组的生命周期
进程组的生命周期从创建开始到其中最后一个进程离开为止的时间区称为进程组的生命期。
(3)进程组ID
进程组ID类似与进程ID–它是一个正整数,可以存放在pid_t数据类型中。我们可以通过getpgrp函数返回调用进程的进程组ID。进程组ID指的是组长进程的ID,所有进程的PGID都是该组的组长,该组是或否存在,只要组中至少还有一个进程存在,则该组存在,并且剩余的进程于它是否是组长进程是没有关系的。
二、作业
(1)概念
shell分前后台来控制的不是进程而是作业,或者进程组,一