linux进程环境及进程属性

2019-07-14 11:15发布

进程是linux下资源管理的基本单元,每个进程有自己独立的运行空间。 每个进程都有一个独立的进程控制块(PCB)来管理每个进程资源。
进程的资源分为两大部分:内核空间进程资源 和 用户空间进程资源 其中,内核空间进程资源是指:PCB相关信息,即进程PID、PPID、UID等,包括进程控制块本身、打开的文件表项等等。简而言之,就是内核通过PCB可以访问到的资源。 用户空间进程资源是指:进程的代码段、数据段、堆、栈,以及可共享访问的库的内存空间。这些资源在进程退出的时候主动释放。
进程的状态
用户级进程 在linux 2.6中有如下几种状态:就绪/运行状态可中断等待不可中断等待僵死状态停止状态
TASK_RUNNING:正在运行或处于就绪状态,就绪状态意味着进程申请到除了CPU以外的其他所有资源。 TASK_INTERRUPTIBLE:处在等待队伍,等待唤醒,可被中断唤醒。 TASK_UNINTERRUPTIBLE:处在等待队伍,等待唤醒,但是不可以被中断唤醒。 TASK_ZOMBIE:进程资源用户空间被释放,但内核中PCB并没有被释放,等待父进程回收。 TASK_STOPPED:进程被外部程序暂停,当再次允许的时候继续执行。
内核级进程状态,多两种: TASK_TRACED、TASK_DEAD
linux中所有的进程都在上述状态中不停地切换。由调度算法决定,进程处于何种状态。
进程的基本属性
进程的基本属性包括:进程号PID、父进程号PPID、进程组号PGID
进程号是系统维护的唯一标识一个进程的正整数,进程号是无法在用户层修改的。 父进程号:除了init进程外,其他任何进程都是由另一个进程创建的。被创建的进程称作子进程,当前进程称作父进程。父进程无法在用户层修改。 进程组号:每一个进程拥有自己的进程组号。进程组是一个或多个进程的集合,他们与同一作业相关联,可以接收来自同一终端的各种信号。进程组号可以在用户层修改。 每个进程组都有一个组长进程,组长进程的进程号就是进程组号。组长进程退出,进程组还在,只要进程组有一个进程,则该进程组仍然存在。
会话会话是一个或多个进程组集合。
控制终端 会话和控制终端有如下特点: 1、一个会话可以有一个控制终端,建立于控制终端连接的会话首进程被称为控制进程。 2、一个会话中的几个进程组可被分成为一个前台进程和几个后台进程,如果一个会话有一个控制终端,则它有一个前台进程。 3、无论何时终端键入中断键退出键,会发送中断信号退出信号给前台进程。