进程控制块与进程描述符

时间:2011-02-10 06:23:25

标签: process linux-kernel

process control blockprocess descriptor之间的确切区别是什么?

我正在阅读关于linux的内核。有人写道,有一些thread_info结构包含指向实际进程描述符表的指针。有人写道thread_info位于内核堆栈的上方/下方。所以绝对thread_info在主存中。但实际的流程描述符task_struct呢?它在哪里?如果进程描述符驻留在主内存中,那么它的实际位置在哪里?

2 个答案:

答案 0 :(得分:3)

thread_infotask_struct结构只是两种不同的结构,它们包含有关线程的不同信息,thread_info保存的架构特定数据多于task_struct }。分割信息而不是将它们保存在同一个结构中更有意义。 (虽然你可以将它们放在同一个结构中; 2.4 Linux内核就是这样做的。)

如何分配这些结构取决于您使用的体系结构。您要检查的相关功能是alloc_task_struct()alloc_thread_info()

答案 1 :(得分:1)

在内核中,进程描述符是一个名为task_struct的结构,它跟踪进程属性和信息。有关进程的所有内核信息都可以在那里找到。