process control block
和process descriptor
之间的确切区别是什么?
我正在阅读关于linux的内核。有人写道,有一些thread_info
结构包含指向实际进程描述符表的指针。有人写道thread_info
位于内核堆栈的上方/下方。所以绝对thread_info
在主存中。但实际的流程描述符task_struct
呢?它在哪里?如果进程描述符驻留在主内存中,那么它的实际位置在哪里?
答案 0 :(得分:3)
thread_info
和task_struct
结构只是两种不同的结构,它们包含有关线程的不同信息,thread_info
保存的架构特定数据多于task_struct
}。分割信息而不是将它们保存在同一个结构中更有意义。 (虽然你可以将它们放在同一个结构中; 2.4 Linux内核就是这样做的。)
如何分配这些结构取决于您使用的体系结构。您要检查的相关功能是alloc_task_struct()
和alloc_thread_info()
。
答案 1 :(得分:1)
在内核中,进程描述符是一个名为task_struct的结构,它跟踪进程属性和信息。有关进程的所有内核信息都可以在那里找到。