标签:选择 其他 系统调用 运行时 条件 cpu 用户 并发 程序
在上一篇文章讲到了进程,进程体现了两个属性资源分配的单位和调度运行的单位,作为资源分配的单位,一个进程有自己的地址空间,其中包括程序、数据、PCB及其他资源,如打开的文件,子进程,未处理的警报,信号,统计信息等。作为调度执行单位,一个进程在执行过程中需要使用一个或多个程序;另外,一个进程的执行过程会与其他进程夹在一起。操作系统根据进程的状态和调度优先级对就绪进程实施调度。由于进程是资源的拥有者,所以它的负载很重,因而在实施进程的创建、删除和切换过程中要付出较大的开销。这样,就限制了系统中进程的数目和并发活动程度,因此很多现代操作系统把上述进程的两个属性分别赋予不同的实体:进程只作为资源的拥有者,而调度和运行的属性赋予新的实体---线程。
线程的组成
每一个线程有一个thread结构,即线程控制块,用于保存自己的私有信息,其组成如下:
线程必须在某个进程内执行,它所需的其他资源,如代码段,数据段,打开的文件和信号等,都由它所属的进程拥有,即:操作系统分配这些资源以进程为单位。传统的进程就是只有一个线程的进程,当一个进程包含多个线程时,这些线程除了自己私有的少量的资源外,要共享所属进程的全部资源。
线程的状态
与进程相似,线程也有若干种状态,如运行态,阻塞状态,就绪状态和终止状态。
线程是一个动态过程。它的状态转换是在一定条件下实现的。通常,当一个新进程创建时,该进程的一个线程也被创建。以后这个线程还可以在它所属的进程内创建另外一个线程,为新线程提供指令指针和参数。同时为新线程提供私有的寄存器内容和栈空间,并且放入就绪队列中。当CPU空闲时,线程调度程序就从就绪队列中选择一个线程,令其投入运行。线程在运行过程中如果需要等待某个事件,它就让出CPU,进入阻塞状态。以后,当该事件发生时,这个线程就从阻塞状态变为就绪状态。
线程的管理
线程与进程的关系
引入线程的好处
线程的实现
标签:选择 其他 系统调用 运行时 条件 cpu 用户 并发 程序
原文地址:http://www.cnblogs.com/sachen/p/6947075.html