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
进程间可能相互共享一些
原文:http://www.cnblogs.com/liao123abc/p/4796385.html