一,说在前面
1.Linux内核不区分线程和进程,PCB和TCB都是tasc_struct
2.task_struct中pid成员值,不论是进程的还是线程的,都是独一无二的
3.当我们用fork创建一个新进程时,会创建一个新的独一无二的task_struct,含有独一无二的pid值
4.当我们用pthread_create创建一个或多个属于原进程的线程时,也会创建新的独一无二的task_struct,含有独一无二的pid值,但是他们隶属于一个线程组,这个线程组的leader thread是原始进程,线程组号(tgid)就是这个原始进程的pid,该进程创建的所有线程,期tgid都是这个tgid,即原始进程(该线程组的lead thread)的pid
5.我们用ps命令和getpid()系统调用查到的,都是进程或线程的task_struct中的tgid成员,而不是pid成员
二,task_struct结构体
pid表示进程标识符,tgi