Значение struct pid_type в ядре Linux - PullRequest
0 голосов
/ 04 февраля 2020

Я вижу, что linux\pid.h в ядре определяет следующий тип:

enum pid_type
{
    PIDTYPE_PID,
    PIDTYPE_TGID,
    PIDTYPE_PGID,
    PIDTYPE_SID,
    PIDTYPE_MAX,
};

, а тип struct pid использует его при отслеживании задач, связанных с PID:

struct pid
{
    atomic_t count;
    unsigned int level;
    /* lists of tasks that use this pid */
    struct hlist_head tasks[PIDTYPE_MAX];
    struct rcu_head rcu;
    struct upid numbers[1];
};

Но к чему относится каждый список? Насколько я понимаю, PIDTYPE_PID относится к задачам, которые используют это как PID («идентификатор потока» с точки зрения ядра) и PIDTYPE_TGID как задачи, которые используют это как TGID, то есть идентификатор группы потоков, который обозначает группу потоков, которые разделяют PID того же пользовательского пространства, что такое PIDTYPE_PGID и PIDTYPE_SID?

1 Ответ

2 голосов
/ 04 февраля 2020

SID = идентификатор сеанса, PGID = идентификатор группы процессов, как описано здесь: https://www.win.tue.nl/~aeb/linux/lk/lk-10.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...