第三章 进程管理(5).ppt

操作系统原理 Principles of Operating System 第三章 进 程 管 理(5) 3.9 线程的概念 3.9.1 为什么要引入线程 3.9.2 线程的基本概念 3.9.3 线程与进程的区别 3.9.4 线程的适用范围 3.9.1 为什么要引入线程 回顾进程的两个特点: 资源所有权:进程是一个可拥有资源的独立单位; 调度/执行:进程同时又是一个可以独立调度和分派的基本单位; 3.9.1 为什么要引入线程 (1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。 (2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。 (3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。 3.9.1 为什么要引入线程 传统的进程概念有两个严重的局限性: 首先许多应用想并发执行彼此间独立的任务,但又必须要共享一个公共的地址空间和其他资源。但传统的进程概念对以上要求难以支持,往往把这些应用中的独立的任务串行化,效率很低。 其次传统的进程不能很好地利用多处理器系统。因为一个进程在某个时刻只能使用一个处理器。 3.9.1 为什么要引入线程 传统的进程概念有两个严重的局限性: 一个应用可以创建多个进程,并把它们分到多个处理器上执行。 但如何做到使用相同的地址空间和资源?这些促使人们引起线程机制。 3.9.1 为什么要引入线程 引入线程的目的: 进程是一个资源拥有者,因而在进程的创建、撤消和切换中,系统必须为之付出较大的时空开销。也因此,在系统中所设置的进程数目不宜过多,进程切换的频率也不宜过高,这同时也限制了并发程序的进一步提高。 在操作系统中引入线程(threads) ,是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。 3.9.2 线程的基本概念 线程:一个进程内的基本调度单位。 线程:基本上不拥有系统资源,由线程控制块TCB、与线程上下文相关的一组寄存器和堆栈组成。 又称为:轻权进程或轻量级进程(Light weight process)。传统的进程称为重型进程(Heavy Weight Process) 3.9.2 线程的基本概念 图3.25等效于单线程的进程执行示意图 3.9.2 线程的基本概念 图3.26多线程情况下进程执行示意图 线程的实质 线程是进程中的一个实体(组成部分),是被系统独立调度和分派的基本单位。所以每个进程在创建时,至少需要同时为该进程创建一个线程。也就是说进程中至少要有一个或一个以上线程,否则该进程无法被调度执行。 线程除运行必需的资源外,不拥有系统资源,但它可与同属一个进程的其它线程共享进程所拥有 的全部资源; 一个线程可创建和撤消另一线程;同一进程中的线程间可并发执行; 由于共享资源(包括数据和文件),所以线程间需要通信和同步机制。线程间相互制约;线程在运行中呈现间断性; 线程有就绪、阻塞、执行三种基本状态; 3.9.3 进程与线程的区别 (1)进程是资源管理的基本单位,它拥有自己的地址空间和各种资源,例如内存空间、外部设备等;线程只是处理机调度的基本单位,它只和其他线程一起共享进程资源,但自己没有 任何资源。 (2)以进程为单位进行处理机切换和调度时,由于涉及到资源转移以及现场保护等问题,将导 致处理机切换时间变长,资源利用率降低。以线程为单位进行处理机切换和调度时,由于不发生资源变化,特别是地址空间的变化,处理机切换的时间较短,从而处理机效率也较 高。 3.9.3 进程与线程的区别 (3)对用户来说,多线程可减少用户的等待时间。提高系统的响应速度。例如,当一个进程需 要对两个不同的服务器进行远程过程凋用时,对于无线程系统的操作系统来说需要顺序等 待两个不同调用返回结果后才能继续执行,且在等待中容易发生进程调度。对于多线程系 统而言,则可以在同一进程中使用不同的线程同时进行远程过程调用,从而缩短进程的等 待时间。 3.9.3 进程与线程的区别 (4)线程和进程一样,都有自己的状态。也有相应的同步机制,不过,由于线程没有单独的数据和程序空间,因此,线程不能像进程的数据与程序那样,交换到外存存储空间。从而线程没有挂起状态。 (5)进程的调度、同步等控制大多由操作系统内核完成,而线程的控制既可以由操作系统内核进行,也可以由用户控制进行。 图3.27多线程与进程的关系 3.9.4 线程的适用范围 线程的适用范围: 使用线程的最大好处是在有多个任务需要处理时,减少处理机的切换时间,同时线程的创建和结束所需要的系统

文档评论(0)

1亿VIP精品文档

相关文档