Linux Process

1.Process概念

进程就是正在执行的应用程序实例。

包括了

(1)正在运行的应用程序代码,

(2)相关的应用程序数据

(3)和执行程序所需要的资源,

(4)该进程的一些状态标识

 

2.进程描述

操作系统会采用一些数据结构来描述和维护进程。在linux中,称为Process Descriptor,定义为

task_struct的一个结构体。

维护的信息有:进程的优先级,进程的状态(是否正在cpu中执行还是是阻塞状态),相对应的进程地址空间等等。

 

下面先介绍进程的状态:

Process State:

状态一般分为五种:

(1)TASK_RUNNING

进程正在执行或者等待被执行

 

(2)TASK_INTERRUPTIBLE

进程处于睡眠状态,等待一些条件被触发,从而重新变为TASK_RUNNING状态。

譬如:

硬件的中断,

该进程需要的资源被别的进程释放了等等

 

(3)TASK_UNINTERRUPTIBLE

和(2)一样,进程处于睡眠状态,但是是需要特定的事件触发才会使进程进入TASK_RUNNING状态。

 

(4)TASK_STOPPED

进程停止, 进程接收到[SIGSTOP, SIGTSTP, SIGTTIN, or SIGTTOU]这些信号的时候就会停止。

 

(5)TASK_ZOMBIE

 进程已经停止执行,但是父进程还没有调用系统调用wait(), 这时候linux kernel还需要维护该进程,因为父进程

还需要该进程的相关信息。

 

3.进程ID

进程间可能相互共享一些

 

posted @ 2015-09-10 08:26  ThomasLiao  Views(249)  Comments(0)    收藏  举报