1.概述
(1)thread的基本概念:进程中的一个运行实体,是CPU的调度单位
(2)thread包括:
【1】线程ID
【2】程序计数器
【3】寄存器组
【4】栈空间
【5】TCB
线程与属于同一进程的其他线程共享:代码段,数据段和其他操作系统资源,如打开文件和信号。
(3)线程和进程:
【1】调度:线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位
【2】并发性:进程间可以并发执行,而且一个进程中的多个进程之间亦可以并发执行。使操作系统有更好的并发性。
【3】资源:进程一定拥有资源,是系统中拥有资源的一个基本单位。而一般县城不拥有系统资源(也有一点必不可少的资源)
【4】系统开销
线程和进程的并发并行。
2、线程的实现方式:
ULT是与内核无关的:
线程的调度:
用户级现成的系统,其调度仍以进程为单位。若内核支持线程,则调度是以线程为单位进行的。
对于多处理器系统(对立于采取进程机制的操作系统),内核支持线程优势体现在运行、调度、开销
甚至可以说在对线程的优劣势考虑中,主要面临的就是针对于两种不同的操作系统,两种实现线程方法在运行、调度、开销上的体现的对比。
缺点:
用户级现成在基于进程机制的操作系统中,当线程执行一个系统调用的时候,阻碍对象是进程,所以不仅该线程被阻塞,其所属的整个线程都将会被阻塞。
内核支持线程的主要缺点是:对于用户的线程而言,其模式切换的开销较大,在同一个进程中,从一个线程切换到另一个线程时,需要从用户态转为用户进程的线程在用户态运行,而线程调度和管理是在内核实现的,系统开销较大。