LINUX 进程源代码分析
大小:75 人气: 2010-02-09 需要积分:0
LINUX 进程源代码分析
task_struct 数据结构
表示进程的数据结构是struct task_struct。task_struct 结构是进程实体的核心,
Linux 内核通过对该结构的相关操作来控制进程,task_struct 结构是一个进程存在的唯一
标志,也就是通常说的进程控制块(PCB, Process Control Block)。Linux 将所有task_struct
结构的指针存储在task 数组中,数组的大小就是系统能容纳的进程数目,默认为512。数
组的定义如下:
/* /include/linux/task.h */
#define NR_TASKS 512 /* task 数组的大小512 */
/* /kernel/sched.c */
struct task_struct *task[NR_TASKS]={&init_task,};
Linux 通过task 数组管理系统中所有的进程。系统定义了全局变量nr_tasks 记录系统中进
程的数目。定义如下:
/* /kernel/fork.c */
int nr_tasks=0; /* 初始化为0 个进程在运行 */
附录中列出了task_struct 结构。它相当大,但是可以从逻辑上划分为以下几部分:
·进程状态
·进程调度信息
非常好我支持^.^
(1) 100%
不好我反对
(0) 0%