第9章 进程关系
-
引言
本章主要介绍,进程、进程组、会话、作业等进程关系。分别通过Unix的两种登录方式:终端登录及网络登录说明;通过管道命令生成不同的进程组
-
终端登录
-
什么是终端?
-
BSD终端登录的流程?
init调用的过程,login调用,终端登录完成各种设置的进程安排
-
网络登录
-
什么是网络登录?
-
网络登录与终端登录的区别?
-
执行TELNET服务进程时调用的进程序列?
-
什么是伪终端设备?
-
网络登录完成各种设置后的进程安排?
-
进程组
-
pid_t getpgrp(void);
返回值:调用进程的进程组ID
-
pid_t getpgid(pid_t pid);
返回值:若成功,返回进程组ID;若出错,返回-1
-
int setpgid(pid_t pid, pid_t pgid);
返回值:若成功,返回0;若出错,返回-1;
-
会话
1、会话是一个或多个进程组的集合。
2、
-
控制终端
1、控制终端、控制进程、前台进程组、后台进程组
-
函数tcgetpgrp, tcsetpgrp和tcgetsid
1、获得哪一个进程组是前台进程组
-
作业控制
1、对于前台、后台作业以及终端驱动程序的作业控制功能总结
-
Shell执行程序
-
不支持作业控制的shell
$ ps –o pid, ppid, pgid, sid, comm
……
-
孤儿进程组
-
孤儿进程组与孤儿进程
-
将要成为孤儿进程组的实例
-
FreeBSD实现
1、会话和进程组的FreeBSD实现
-
小结
-
重点:
-
理解Unix登录及后继过程
-
作业控制实例
-
Shell执行实例
-
孤儿进程组
-
进程组与信号的关系