1 / 13

第4章 多线程——内容提要

第4章 多线程——内容提要. 线程的概念 线程的好处 应用线程的例子 线程的状态和线程管理 多线程的实现 Solaris 操作系统的线程机制 Mach 操作系统的线程机制 习题. 进程和线程的执行示意图. 三个进程各占自己的资源,独自执行. 同一进程中三个线程公用资源,独自执行. 线程的概念和性质. 进一步提高并行性的需求 并行性(多处理器)和并发性(单处理器) 对并行的实际需求 并发的开销大:模式转换和进程开关 降低进程开关的开销的思路:将进程的资源占有和运行单元体的两个角色分开 定义:线程是进程内的一个相对独立的、可调度的执行单元。 性质:

dash
Download Presentation

第4章 多线程——内容提要

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章 多线程——内容提要 • 线程的概念 • 线程的好处 • 应用线程的例子 • 线程的状态和线程管理 • 多线程的实现 • Solaris操作系统的线程机制 • Mach操作系统的线程机制 • 习题

  2. 进程和线程的执行示意图 三个进程各占自己的资源,独自执行 同一进程中三个线程公用资源,独自执行

  3. 线程的概念和性质 • 进一步提高并行性的需求 • 并行性(多处理器)和并发性(单处理器) • 对并行的实际需求 • 并发的开销大:模式转换和进程开关 • 降低进程开关的开销的思路:将进程的资源占有和运行单元体的两个角色分开 • 定义:线程是进程内的一个相对独立的、可调度的执行单元。 • 性质: • 进程内一个相对独立的可执行单元 • 操作系统的基本调度单元 • 每个进程至少要有一个或一个以上的线程 • 线程可以创建其他线程 • 同一个进程中的线程共享该进程的资源 • 线程间需要通信和同步机制 • 线程有生命期,有诞生和死亡

  4. 采用线程机制带来的好处 • 创建和撤消线程的开销大大小于创建和撤消进程的开销 • 线程开关的开销大大小于进程开关开销 • 增加了通信的有效性 • 为便于实现线程机制,促使程序员设计结构良好的程序

  5. 应用线程的例子 • 前台和后台:输入、检查、修改、打印 • 异步处理:定期备份 • 加快处理速度:对数据的并行处理 • 组织复杂的工作:如DBMS对SQL语句的处理 • 同时处理多个用户的服务请求:如民航售票或证券交易

  6. 线程的状态和线程管理 • 线程状态:就绪、运行、等待(p.62图4-1) • 几点说明:无挂起状态;使用I/O时是否阻塞其他线程;进程的状态只与资源有关了 • 线程的描述 • 进程现场:映象和保护体系(与资源有关) • 线程现场:状态、运行现场、执行堆栈…(与运行有关) • 用面向对象的形式表示线程控制块(TCB) • 对象和类的概念 • 进程对象和线程对象:p.65表4.1和表4.2 • 线程的管理、线程组 • 基本管理方式:TCB队列 • 线程控制原语:创建、撤消、阻塞、挂起、解挂… • 以线程组的形式成组管理线程

  7. 多线程的实现(1) • 基于线程观点的操作系统分类:单进程单线程(MS-DOS);多进程单线程(传统UNIX);单进程多线程;多进程多线程(WINDOWS NT等)p.67 • 用户级和内核级线程:p.70图4.4 • 用户级线程(ULT):定义;实现方式—线程库;优点(开销小;适应多类应用;适应多种操作系统);问题(I/O时阻塞;时间片轮转时线程与进程状态不协调);缺点(阻塞多个线程;饥饿;无法享受多处理器);解决方案(监控程序和虚拟时钟、I/O外套程序);其他问题(对共享存区的保护、多CPU);实际数据

  8. 多线程的实现(2) • 内核级线程(KLT):什么是KLT;优点(多处理器并行;阻塞时不相互牵制;内核线程);缺点(进出操作系统的两次模式转换的开销) • KLT和ULT结合的方法:p.70图4.4c;四个容易混淆的术语的解释(针对线程主,还是针对线程运行的地址空间而言) • 线程库: • 功能:支持ULT的开发和应用 • 所提供的过程调用 • 实现要点:尽量减少目态/管态间转换(每次转换都涉及在不同的地址空间之间复制数据,开销很大);线程调度;编程接口

  9. Solaris操作系统的线程机制 • Solaris的多线程结构:有关概念及图示 • 轻质进程 • UNIX和Solaris的进程表的比较:Solaris的进程不包括处理器现场,该现场在轻质进程数据块。 • 轻质进程的本质是一个特殊的用户线程 • 轻质线程的局限性:开销大;占用内核资源多;仅涉及用户空间(即上层)的操作开销小,同时涉及上下层的开销大。 • 内核线程:数据结构;Solaris内核构成 • 用户线程:完全由线程库管理,与内核无关。 • 线程的执行 • 用户线程与轻质进程多对多:用户线程状态变化图(p.75);LWP状态变化图(p.76) • 用户进程与轻质进程一对一:走则同行;停则同停 • 内核中断线程 • 中断处理由中断线程执行,并用锁或信号量互斥 • 实现方法及其性能分析(p.77页首)

  10. Solaris多线程结构的有关概念 • 进程; • 用户级线程ULT:通过在进程地址空间的线程库实现; • 轻质进程LWP:LWP是用户级线程与内核级线程之间的映射。LWP被内核独立调度并可在多处理器上并行执行; • 内核级线程KLT:被调度并分派到一个处理器上执行的基本实体。

  11. 进程5 进程4 进程2 进程3 线程库 线程库 线程库 线程库 u u u u u u u u u u u u k k k k k k k k k Solaris的多线程结构有关概念图示 用户空间 进程1 线程库 L L L L L L L L L 内核 线程调度程序 CPU CPU CPU CPU CPU 硬件

  12. Mach操作系统的线程机制 • 任务(类似进程)和线程 • 线程的数据结构(p.77) • 与线程相关的系统调用:创建、终止、挂起、恢复等 • 线程分类:纯内核线程;用户任务的线程(相当于Solaris中的轻质进程) • 线程库 • 线程库的实现方法 • 基于线程(default):每个用户线程使用一个内核用户线程(相当于轻质进程),抢占式调度 • 基于协同例程:多个用户线程对应一个内核用户线程,不可抢占式调度 • 基于任务:每个线程使用一个Mach 任务(即UNIX进程)

  13. 习题 • 4.2 • 4.3 • 4.4 • 4.5 • 4.10

More Related