您的位置:首页 > 运维架构 > Linux

Linux进程管理---task_struct结构体

2016-08-02 10:36 447 查看
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单元。

进程控制块就是task_struct结构体。

task_struct是Linux内核的一种数据结构,每个进程都把它的信息放在task_struct这个数据结构里,task_struct包含了这些内容:

标识符:描述本进程的唯一标识符,用来区别其他进程。

状态:任务状态,退出代码,退出信号等。

优先级:相对于其他进程的优先级。

程序计数器:程序中即将被执行的下一条指令的地址。

内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的地址。

上下文数据:进程执行时处理器的寄存器中的数据

TASK_RUNNING表示进程要么正在执行,要么正要准备执行。

TASK_INTERRUPTIBLE表示进程被阻塞(睡眠),直到某个条件变为真。条件一旦达成,进程的状态就被设置为TASK_RUNNING。

 TASK_UNINTERRUPTIBLE的意义与TASK_INTERRUPTIBLE类似,除了不能通过接受一个信号来唤醒以外。

__TASK_STOPPED表示进程被停止执行。

 __TASK_TRACED表示进程被debugger等进程监视。

 EXIT_ZOMBIE表示进程的执行被终止,但是其父进程还没有使用wait()等系统调用来获知它的终止信息。

 EXIT_DEAD表示进程的最终状态。

     

?PF_ALIGNWARN           打印“对齐”警告信息。

?PF_PTRACED           被ptrace系统调用监控。

?PF_TRACESYS           正在跟踪。

?PF_FORKNOEXEC           进程刚创建,但还没执行。

?PF_SUPERPRIV           超级用户特权。

?PF_DUMPCORE            dumped core。

?PF_SIGNALED           进程被信号(signal)杀出。

?PF_STARTING           进程正被创建。

?PF_EXITING            进程开始关闭。

?PF_USEDFPU           该进程使用FPU(SMP only)。

?PF_DTRACE            delayed trace (used on m68k)。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: