UNIX系统进程管理与程序执行详解
在UNIX系统中,进程管理是系统运行的核心部分,它涉及多个重要的概念,包括进程组、会话、优先级等。理解这些概念对于深入掌握UNIX系统编程至关重要。
进程与进程组
在UNIX系统里,每个程序运行时都会作为一个独立的进程,拥有唯一的进程ID。例如,当执行 % eqn myreport | tbl | troff | psdit | lp 时, eqn 、 tbl 、 troff 、 psdit 和 lp 这五个程序会分别以独立进程运行,它们的进程ID可能是123、124、125、126和127。但这五个进程会有相同的进程组ID,如127。这样,shell就能将它们视为一个整体(即“作业”),方便进行停止、继续以及在前台和后台之间切换等操作。
每个进程组都有一个进程组领导者。这个领导者进程的进程组ID等于其进程ID。进程组领导者可能在任何时候终止,但进程组会一直存在,直到该组中的最后一个进程终止。当通过管道创建进程组时,管道中的最后一个进程通常是进程组领导者,这只是管道创建方式带来的一个副作用,并没有深层次的原因。
会话
POSIX标准引入了会话的概念。会话是一个或多个进程组的集合。每个进程组是一组相关的进程(如管道中的进程),而会话则是一组相关的进程组(如在特定终端登录的用户当前正在运行的所有作业)。会话的存在主要是为了进行作业控制,弥补了Berkeley作业控制实现中仅使用进程组的一些不足。
当一个进程创
超级会员免费看
订阅专栏 解锁全文
1134

被折叠的 条评论
为什么被折叠?



