通常进程还要包括其他资源,像打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间以及一个或多个执行线程,当然还包括用来存放全局变量的数据段等。程序本身并不是进程,进程是处于执行期的程序以及相关的资源的总称。
线程,内核调度的就是线程,而不是进程。每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器。内核调度的对象是线程,而不是进程。在传统的UNIX系统中,一个进程只包含一个线程,但现在的系统中,包含多个线程的多线程程序司空见惯。Linux系统的线程实现非常特别:它对线程和进程并不特别区分。对linux而言,线程只不过是一种特殊的进程罢了。
《linux内核设计与实现》第二章
进程描述符以及任务结构
内核把进程的列表存放在叫做任务队列的双