Ядро Linux использует struct pid для представления PID в пространстве ядра. Код C приведен ниже.
struct pid
{
atomic_t count;
/* lists of tasks that use this pid */
struct hlist_head tasks[PIDTYPE_MAX];
int level;
struct upid numbers[1];
};
Я не могу понять, почему задачи-члены могут представлять "списки задач".task_struct является внутренним представлением задачи в ядре, и одна задача использует только одну task_struct. Почему более одной задачи могут использовать один и тот же «struct pid»?