红联Linux门户
Linux帮助

Linux Kernel Development - Ch3 Process Management

发布时间:2008-05-08 10:37:43来源:红联作者:tvnet
  1.task_struct
  linux进程数据结构task_struct在中定义,在32位机上大概有1.7KB大,所有task_struct通过slab分配存储空间并组成一个双向循环链表(2.6内核以前task_struct存储在内核栈的底部),为了快速查找进程,2.6内核在内核栈底部为每个task_struct对应分配一个thread_info结构,thread_info只有10个域,相对较小,其中struct task_struct * task指向对应的task_struct。

  2.pid
  pid的类型是pid_t,在很多情况下就是int,但是它的最大值一般设置为32768,在运行期间可以通过修改/proc/sys/kernel/pid_max来改变这个数值。

  3.task state
  linux中进程只能处于5种状态中的一种:

  1.TASK_RUNNING 进程正在运行或者可以运行并处于就绪队列等待调度

  2.TASK_INTERRUPTIBLE 进程等待事件发生或信号,可被事件或信号唤醒

  3.TASK_UNINTERRUPTIBLE 进程等待事件发生,不能被信号唤醒

  4.TASK_ZOMBIE 进程已结束,但其父进程没有通过wait()获取它的退出状态

  5.TASK_STOPPED 进程没有运行或不能运行,这可能是由于收到SIGSTOP, SIGTSTP, SIGTTIN, or SIGTTOU信号引起

  4.process context & interrupt context
  process context是指进程调用系统调用或触发异常时,内核代替进程在内核空间执行,有进程相关

  interrupt context是指内核进行中断处理,没有进程相关。
文章评论

共有 0 条评论