计算机操作系统多线程

  • 格式:ppt
  • 大小:87.00 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 进一步提高并行性的需求 – 并行性(多处理器)和并发性(单处理器) – 对并行的实际需求 – 并发的开销大:模式转换和进程开关 • 降低进程开关的开销的思路:将进程的资源占有和运行单元体 的两个角色分开 • 定义:线程是进程内的一个相对独立的、可调度的执行单元。 • 性质: – 进程内一个相对独立的可执行单元 – 操作系统的基本调度单元 – 每个进程至少要有一个或一个以上的线程 – 线程可以创建其他线程 – 同一个进程中的线程共享该进程的资源 – 线程间需要通信和同步机制 – 线程有生命期,有诞生和死亡
• 对象和类的概念 • 进程对象和线程对象:p.65表4.1和表4.2
• 线程的管理、线程组
– 基本管理方式:TCB队列 – 线程控制原语:创建、撤消、阻塞、挂起、解挂… – 以线程组的形式成组管理线程
多线程的实现(1)
• 基于线程观点的操作系统分类:单进程单线 程(MS-DOS);多进程单线程(传统 UNIX);单进程多线程;多进程多线程 (WINDOWS NT等)p.67 • 用户级和内核级线程:p.70图4.4 • 用户级线程(ULT):定义;实现方式—线程 库;优点(开销小;适应多类应用;适应多 种操作系统);问题(I/O时阻塞;时间片轮 转时线程与进程状态不协调);缺点(阻塞 多个线程;饥饿;无法享受多处理器);解 决方案(监控程序和虚拟时钟、I/O外套程 序);其他问题(对共享存区的保护、多 CPU);实际数据
第4章 多线程——内容提要
• • • • • • • • 线程的概念 线程的好处 应用线程的例子 线程的状态和线程管理 多线程的实现 Solaris操作系统的线程机制 Mach操作系统的线程机制 习题
进程和线程的执行示意图
三个进程各占自己的资源,独自执行
同一进程中三个线程公用资源,独自执行
线程的概念和性质
线程的状态和线程管理
• 线程状态:就绪、运行、等待(p.62图4-1)
– 几点说明:无挂起状态;使用I/O时是否阻塞其他线 程;进程的状态只与资源有关了
• 线程的描述
– 进程现场:映象和保护体系(与资源有关) – 线程现场:状态、运行现场、执行堆栈…(与运行 有关) – 用面向对象的形式表示线程控制块(TCB)
Solaris操作系统的线程机制
• Solaris的多线程结构:有关概念及图示 • 轻质进程
– UNIX和Solaris的进程表的比较:Solaris的进程不包括处理器 现场,该现场在轻质进程数据块。 – 轻质进程的本质是一个特殊的用户线程 – 轻质线程的局限性:开销大;占用内核资源多;仅涉及用户 空间(即上层)的操作开销小,同时涉及上下层的开销大。
用户空间
进程1 u
线程库
进程2 u
线程库
进程3 u u u
进程4 u u u
线程库
进程5 u u u
u
线程库
线程库
L
kFra Baidu bibliotek
L
k
L
k
L
k
L
k
L
k
L
k
L
k
L
k
内核 硬件
线程调度程序
CPU
CPU
CPU
CPU
CPU
Mach操作系统的线程机制
• 任务(类似进程)和线程 • 线程的数据结构(p.77) • 与线程相关的系统调用:创建、终止、挂起、 恢复等 • 线程分类:纯内核线程;用户任务的线程 (相当于Solaris中的轻质进程) • 线程库 • 线程库的实现方法
多线程的实现(2)
• 内核级线程(KLT):什么是KLT;优点(多 处理器并行;阻塞时不相互牵制;内核线 程);缺点(进出操作系统的两次模式转换 的开销) • KLT和ULT结合的方法:p.70图4.4c;四个容易 混淆的术语的解释(针对线程主,还是针对 线程运行的地址空间而言) • 线程库:
– 功能:支持ULT的开发和应用 – 所提供的过程调用 – 实现要点:尽量减少目态/管态间转换(每次转换 都涉及在不同的地址空间之间复制数据,开销很 大);线程调度;编程接口
– 基于线程(default):每个用户线程使用一个内核用 户线程(相当于轻质进程),抢占式调度 – 基于协同例程:多个用户线程对应一个内核用户 线程,不可抢占式调度 – 基于任务:每个线程使用一个Mach 任务(即 UNIX进程)
习题
• • • • • 4.2 4.3 4.4 4.5 4.10
Solaris多线程结构的有关概念
• 进程; • 用户级线程ULT:通过在进程地址空间的线程 库实现; • 轻质进程LWP:LWP是用户级线程与内核级 线程之间的映射。LWP被内核独立调度并可 在多处理器上并行执行; • 内核级线程KLT:被调度并分派到一个处理器 上执行的基本实体。
Solaris的多线程结构有关概念图示
采用线程机制带来的好处
• 创建和撤消线程的开销大大小于创建和 撤消进程的开销 • 线程开关的开销大大小于进程开关开销 • 增加了通信的有效性 • 为便于实现线程机制,促使程序员设计 结构良好的程序
应用线程的例子
• • • • 前台和后台:输入、检查、修改、打印 异步处理:定期备份 加快处理速度:对数据的并行处理 组织复杂的工作:如DBMS对SQL语句 的处理 • 同时处理多个用户的服务请求:如民航 售票或证券交易
• 内核线程:数据结构;Solaris内核构成 • 用户线程:完全由线程库管理,与内核无关。 • 线程的执行
– 用户线程与轻质进程多对多:用户线程状态变化图 (p.75);LWP状态变化图(p.76) – 用户进程与轻质进程一对一:走则同行;停则同停
• 内核中断线程
– 中断处理由中断线程执行,并用锁或信号量互斥 – 实现方法及其性能分析(p.77页首)