1、进程组
进程组是一个或多个进程的集合。进程组由进程组ID(PGID)来唯一标识。每个进程组都有一个组长进程,进程组ID就是组长进程的进程号。
2、会话
是一个或多个进程组的集合。
一般一个用户登录后新建一个会话(打开终端),每个会话也有一个ID来标识(SID)。登录后的第一个进程叫做会话领头进程(session leader),通常是一个shell/bash,即一个shell程序。对于会话领头进程,其PID=SID。
为什么是一个用户登录后新建一个会话呢?
一般取去公司上班,我们见不到服务器真机,而是公司为每个员工分配一个 用户名和密码,我们可以通过远程进行登录。这个时候我们就登录到了一个终端,因此说一个用户登录后新建一个会话。
3、控制终端
- 一个会话一般会拥有一个控制终端用于执行IO操作。
- 会话的领头进程(一般是shell进程)打开一个终端之后, 该终端就成为该会话的控制终端。
- 与控制终端建立连接的会话领头进程也称为控制进程 (controlling process) 。一个会话只能有一个控制终端。
4、前台进程组
- 该进程组中的进程能够向终端设备进行读、写操作的进程组。
例如在终端中执行./a.out 这个程序就能通过向终端读写