为了描述进程这个抽象概念,Linux 使用了 task_struct 这个结构体来描述。
在这个结构体中包含了很多很多和进程相关的变量,而你所说的 pid 只是其中之一罢了。作用正如你的学号只是为了在你的学校里唯一标识你罢了,而你还拥有很多别的信息,例如身高,体重,成绩等等。

如下所示:
struct task_struct {
    ...
    pid_t pid;
    ...
};

再甩个链接: http://guojing.me/linux-kernel-architecture/posts/process-descriptor/