C Linux内核中结构pid_类型的含义

C Linux内核中结构pid_类型的含义,c,linux,C,Linux,我看到内核中的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 u

我看到内核中的
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\u PID
指的是将其用作PID的任务(从内核的角度来看是“线程ID”),而
PIDTYPE\u TGID
指的是将其用作TGID的任务,即线程组ID,表示共享相同用户空间PID的一组线程,什么是
PIDTYPE\u PGID
PIDTYPE\u SID

SID=session ID, PGID=此处所述的过程组ID: SID=会话ID, PGID=此处所述的过程组ID: