所谓状态是指线程当前正在干什么和它能干什么
几个基本状态:
就绪状态
运行状态
等待状态(或阻塞状态)
几点说明
线程没有挂起操作和挂起状态; 线程不是资源的拥有者,资源属于进程,所以线程不应有决定整个进程或自己从主存撤出的权力。 进程中可能有多个线程,当其中一个线程在执行中成为阻塞状态时,不阻塞其他 线程,该进程中其他线程仍然可以参与调度运行; 对于多线程进程中的进程状态,可以只划分为活动(可运行)状态和非活动(不 可运行)状态。
线程的生命周期

线程的描述
线程状态(就绪、运行、阻塞等);
当线程不运行时,被保存的现场信息;
程序计数器、程序状态字、通用寄存器、堆栈指针
一个执行堆栈;
存放每个线程的局部变量的主存区;
访问被同一进程中所有线程共享的该进程的主存和其他资源。
线程控制块TCB——描述和记录其属性和调度所需的数据,是线程存在的标志;
进程对象和线程对象
进程对象属性
进程ID——系统中进程的唯一标识 存取令牌——包含该进程所对应的已登录用户的安全信息的对象 基本优先级——该进程的线程的基线执行优先级 默认处理器族——进程的线程所能运行的默认处理器族 配额限制——一个用户进程所能使用的分页和非分页的系统主存,页面调度文件空间和处理器时间的最大数量 执行时间——进程的所有线程的执行时间总量 I/O计数器——记录其所有线程所执行的I/O操作数和种类的变量 VM操作计数器——记录其所有线程所进行的虚拟存储操作数量和种类的变量 异常情况/调试端口——进程间通信的信道 退出状态——进程终止原因
线程对象属性
线程ID——当线程调用一个服务时,对该线程的唯一标识 线程描述表(context)——定义线程执行状态数据,如程序计数器、程序状态字的内容和通用寄存器、堆栈指针等 动态优先级——在给出时刻的线程的执行优先级 基本优先级——线程动态优先级的最低限 线程处理器族——线程可以运行的处理器集合 线程执行时间——线程在用户态和内核态已执行时间的累计量 报警信号状态——指示线程是否执行在异步过程调用的标志 挂起计数——线程的执行没有被恢复的次数 模仿令牌——允许线程在其他进程中执行操作的临时性的访问令牌 终止端口——当线程终止时,发送给进程管理程序一个消息的进程间的通信通道 线程出口状态——线程终止的原因
线程的管理(与进程类似)
也用链指针将TCB或线程对象按它们所处的状态链接成相应的线程队列来加以管理; 操作系统的进程管理程序为某用户应用程序创建进程时,同时为该进程创建第一个线程; 以后在线程的运行过程中,线程可以在需要的时候创建所需的线程; 线程间不提供父子关系的支持。
线程控制原语
创建线程原语:为线程得到一个TCB或线程对象,并初始化线程ID,线程描述表(程序计数器PC、程序状态字PSW、通用寄存器、堆栈指针等)和其他有关项,然后进入相应就绪队列。
撤消线程原语:撤消线程TCB或线程对象、线程堆栈和描述表。
阻塞或等待原语
挂起一个线程
恢复(解挂)一个线程
改变优先数
基于线程观点的操作系统分类
单进程和单线程系统——只有一个进程,每个进程中只有一个线程,如MS-DOS; 多进程和单线程系统——有多个进程,但每个进程中只有一个线程,如传统意义上的UNIX系统; 单进程和多线程系统——只有一个进程,但每个进程有多个线程; 多进程和多线程系统——有多个进程,每个进程中又有多个线程,是当前应用最广泛的系统类型。