深圳营销型网站建设制作商,网站升级应注意的问题,关键词优化的原则,wordpress评论等级一、终端的概念 在UNIX系统中#xff0c;用户通过终端登录系统后得到一个Shell进程#xff0c;这个终端成为Shell进程的控制终端#xff08;Controlling Terminal#xff09;#xff0c;进程中#xff0c;控制终端是保存在PCB中的信息#xff0c;而fork会复制PCB中的信息…一、终端的概念 在UNIX系统中用户通过终端登录系统后得到一个Shell进程这个终端成为Shell进程的控制终端Controlling Terminal进程中控制终端是保存在PCB中的信息而fork会复制PCB中的信息因此由Shell进程启动的其它进程的控制终端也是这个终端。
默认情况下没有重定向每个进程的标准输入、标准输出和标准错误输出都指向控制终端进程从标准输入读也就是读用户的键盘输入进程往标准输出或标准错误输出写也就是输出到显示器上。
信号中还讲过在控制终端输入一些特殊的控制键可以给前台进程发信号例如CtrlC表示SIGINTCtrl\表示SIGQUIT。
二、进程组概念 1、进程组概述 进程组也称之为作业。BSD于1980年前后向Unix中增加的一个新特性。代表一个或多个进程的集合。
每个进程都属于一个进程组。在waitpid函数和kill函数的参数中都曾使用到。操作系统设计的进程组的概念是为了简化对多个进程的管理。
当父进程创建子进程的时候默认子进程与父进程属于同一进程组。进程组ID为第一个进程ID(组长进程)。所以组长进程标识其进程组ID为其进程ID
可以使用kill -SIGKILL -进程组ID(负的)来将整个进程组内的进程全部杀死
三、会话 1、会话概念 会话是一个或多个进程组的集合。
一个会话可以有一个控制终端。这通常是终端设备或伪终端设备 建立与控制终端连接的会话首进程被称为控制进程 一个会话中的几个进程组可被分为一个前台进程组以及一个或多个后台进程组 如果一个会话有一个控制终端则它有一个前台进程组其它进程组为后台进程组 如果终端接口检测到断开连接则将挂断信号发送至控制进程会话首进程。
2、创建会话注意事项 调用进程不能是进程组组长该进程变成新会话首进程(session header) 该调用进程是组长进程则出错返回 该进程成为一个新进程组的组长进程 需有root权限(ubuntu不需要) 新会话丢弃原有的控制终端该会话没有控制终端 建立新会话时先调用fork, 父进程终止子进程调用setsid