线程概述
进入线程的目的:
程序并发执行所需付出的时空开销,为使程序能并发执行,系统必须进行以下的一系列操作:
(1) 创建进程,系统在创建一个进程时,必须为它分配其所必需的、除处理机以外的所有资源,如内存空间、I/O设备,以及建立相应的PCB;
(2) 撤消进程,系统在撤消进程时,又必须先对其所占有的资源执行回收操作,然后再撤消PCB;
(3) 进程切换,对进程进行上下文切换时,需要保留当前进程的CPU环境,设置新选中进程的CPU环境,因而须花费不少的处理机时间。
引入线程主要是为了提高系统的执行效率,减少处理机的空转时间和调度切换(保护现场信息)的时间,以及便于系统管理。,使OS具有更好的并发性
线程——作为调度和分派的基本单位(取代进程的部分基本功能)
线程与进程
回顾一下进程的基本属性:
①进程是一个可拥有资源的独立单位,
②进程同时又是一个可独立调度和分派的基本单位,
线程与进程的关系:一个进程可以派生出多个线程。
线程有3个基本状态:执行、就绪、阻塞。
线程有5种基本操作:
派生、阻塞、激活、 调度、 结束
线程的另一个执行特性是同步。线程中所使用的同步控制机制与进程中所使用的同步控制机制相同。
线程的基础
线程有两个基本类型:
1) 用户级线程:管理过程全部由用户程序完成,操作系统内核心只对进程进行管理。
2) 系统级线程(核心级线程):由操作系统内核进行管理。操作系统内核给应用程序提供相应的系统调用和应用程序接口API,以使用户程序可以创建、执行以及撤消线程。
线程的属性:
1)轻型实体;2)独立调度和分派的基本单位;3)可并发执行;4)共享进程资源。
如同每个进程有一个进程控制块一样,系统也为每个线程配置了一个线程控制块TCB,将所有用于控制和管理线程的信息记录在线程控制块中