- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精选课件多线程内容提要
第4章 多线程——内容提要 线程的概念 线程的好处 应用线程的例子 线程的状态和线程管理 多线程的实现 Solaris操作系统的线程机制 Mach操作系统的线程机制 习题 进程和线程的执行示意图 线程的概念和性质 进一步提高并行性的需求 并行性(多处理器)和并发性(单处理器) 对并行的实际需求 并发的开销大:模式转换和进程开关 降低进程开关的开销的思路:将进程的资源占有和运行单元体的两个角色分开 定义:线程是进程内的一个相对独立的、可调度的执行单元。 性质: 进程内一个相对独立的可执行单元 操作系统的基本调度单元 每个进程至少要有一个或一个以上的线程 线程可以创建其他线程 同一个进程中的线程共享该进程的资源 线程间需要通信和同步机制 线程有生命期,有诞生和死亡 采用线程机制带来的好处 创建和撤消线程的开销大大小于创建和撤消进程的开销 线程开关的开销大大小于进程开关开销 增加了通信的有效性 为便于实现线程机制,促使程序员设计结构良好的程序 应用线程的例子 前台和后台:输入、检查、修改、打印 异步处理:定期备份 加快处理速度:对数据的并行处理 组织复杂的工作:如DBMS对SQL语句的处理 同时处理多个用户的服务请求:如民航售票或证券交易 线程的状态和线程管理 线程状态:就绪、运行、等待(p.62图4-1) 几点说明:无挂起状态;使用I/O时是否阻塞其他线程;进程的状态只与资源有关了 线程的描述 进程现场:映象和保护体系(与资源有关) 线程现场:状态、运行现场、执行堆栈…(与运行有关) 用面向对象的形式表示线程控制块(TCB) 对象和类的概念 进程对象和线程对象: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);实际数据 多线程的实现(2) 内核级线程(KLT):什么是KLT;优点(多处理器并行;阻塞时不相互牵制;内核线程);缺点(进出操作系统的两次模式转换的开销) KLT和ULT结合的方法:p.70图4.4c;四个容易混淆的术语的解释(针对线程主,还是针对线程运行的地址空间而言) 线程库: 功能:支持ULT的开发和应用 所提供的过程调用 实现要点:尽量减少目态/管态间转换(每次转换都涉及在不同的地址空间之间复制数据,开销很大);线程调度;编程接口 Solaris操作系统的线程机制 Solaris的多线程结构:有关概念及图示 轻质进程 UNIX和Solaris的进程表的比较:Solaris的进程不包括处理器现场,该现场在轻质进程数据块。 轻质进程的本质是一个特殊的用户线程 轻质线程的局限性:开销大;占用内核资源多;仅涉及用户空间(即上层)的操作开销小,同时涉及上下层的开销大。 内核线程:数据结构;Solaris内核构成 用户线程:完全由线程库管理,与内核无关。 线程的执行 用户线程与轻质进程多对多:用户线程状态变化图(p.75);LWP状态变化图(p.76) 用户进程与轻质进程一对一:走则同行;停则同停 内核中断线程 中断处理由中断线程执行,并用锁或信号量互斥 实现方法及其性能分析(p.77页首) Solaris多线程结构的有关概念 进程; 用户级线程ULT:通过在进程地址空间的线程库实现; 轻质进程LWP:LWP是用户级线程与内核级线程之间的映射。LWP被内核独立调度并可在多处理器上并行执行; 内核级线程KLT:被调度并分派到一个处理器上执行的基本实体。 Solaris的多线程结构有关概念图示 Mach操作系统的线程机制 任务(类似进程)和线程 线程的数据结构(p.77) 与线程相关的系统调用:创建、终止、挂起、恢复等 线程分类:纯内核线程;用户任务的线程(相当于Solaris中的轻质进程) 线程库 线程库的实现方法 基于线程(default):每个用户线程使用一个内核用户线程(相当于轻质进程),抢占式调度 基于协同例程:多个用户线程对应一个内核用户线程,不可抢占式调度 基于任务:每个线程使用一个Mach 任务(即UNIX进程) 习题 4.2 4.3 4.4 4.5 4.10 * * 三个进程各占自己的资源,独自执行 同一进程中三个线程公用资源,独自
您可能关注的文档
最近下载
- 述责述廉报告 述责述廉报告2020三篇.docx VIP
- 沪教版小学四年级语文第一学期全册课件.ppt
- [贾平凹废都柳月]贾平凹作品废都.pdf
- 营房安全知识.docx VIP
- 东华大学教职工各类俱乐部(文体类)协会管理规定.doc
- 安徽省合肥市第四十五中学2023-2024学年八年级上学期期中物理试题(含答案).docx VIP
- 小学数学教研组教研工作总结PPT.pptx
- 贸易安全标准培训教材PPT课件(精编)共42页PPT-课件有实际AEO企业案例.pptx VIP
- 18.4数学活动-折纸做60°-30°-15°的角省公开课获奖课件市赛课比赛一等奖课件.pptx
- 2024软件正版化培训.pptx VIP
文档评论(0)