- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 多线程
第四章 多线程 4.1 线程概念 4.2 线程的状态及管理 4.3 多线程的实现 4.4 Solaris操作系统的线程机制 4.1 线程概念 1. 线程的引入 减少进程之间的切换开销 提高进程内的多个任务的并行性 2.线程的概念与特性 (1) 概念(Thread) 几种提法: 进程内的一个执行单元。 进程内的一个可调度实体。 是程序(或进程)中相对独立的一个控制流序列。 是执行的上下文(指执行的现场数据和其他调度所需要的信息)。 4.1 线程概念 线程:是进程内一个相对独立、可调度的执行单元。 ( 线程只拥有与执行状态相关的少量资源,引入线程后,进程实际上已成为资源分配的基本单位。) (2)线程的特性 是进程内一个相对独立的执行单元 是OS独立调度的基本单元 线程有生命周期,也可创建其他新线程 共享进程资源(一个进程的所有线程拥有相同的地址空间,和分配给该进程的资源) 线程可并发执行,每个进程至少有一个线程存在,否则不能够调度执行 线程间需要通信和同步 4.1 线程概念 (3)进程与线程的比较 调度:线程是调度的基本单元,进程不是。因此,每个进程在创建时,至少要为其创建一个线程,同时,一个线程也可以创建其他线程。 并发性:引入线程后,系统的并发程度进一步提高。 拥有资源:进程是资源分配的基本单位,线程是执行的上、下文。 系统开销:线程切换的开销比进程之间切换的开销小。 通讯:同一进程的多个线程之间的通讯比较简单,可以不需要OS内核的参与(因为它们共享该进程的地址空间),而进程之间的通讯由OS内核的控制。 4.2 线程的状态及管理 1.线程的状态 三种基本的关键状态:就绪、阻塞和运行。 一般情况下,线程中的挂起状态是指线程的“不可运行状态”(阻塞状态)。以下的任何一种情况,可以使一个正处于运行状态的线程转变为不可运行状态: 其他线程使用sleep()原语 因为“挂起”原语 线程自己等待某个事件 线程请求I/O服务 4.2 线程的状态及管理 2.线程的状态转换 与进程一样,线程也具有状态和相应的操作。但是,不同的系统,线程状态的设计也不同。线程状态转换的一般关系为: 4.2 线程的状态及管理 3.线程的描述 (1)线程的主要信息 线程的状态 线程不运行时保存的现场信息(程序计数器、PSW、通用寄存器和堆栈指针等) 一个执行堆栈 每个线程局部变量的主存区 与同一进程其他线程共享的资源 4.2 线程的状态及管理 (2)线程控制块TCB (Thread –Control-Block) 线程的描述由线程控制块完成。线程控制块TCB记录了每个线程的属性和调度所需要的信息,是线程存在的唯一标志。 4.2 线程的状态及管理 4.线程的管理 线程的管理和控制是通过线程控制原语来实现的。 (1)线程创建原语 申请并初始化一个TCB。 (2)线程撤消原语 线程结束或被强行停止,释放TCB。 (3)线程阻塞和唤醒原语 (4)线程的挂起和解挂原语 (5)改变线程优先数 4.2 线程的状态及管理 5.线程组(Thread Group) 为了管理线程的方便,有些系统(Java实时运行系统)中引入了线程组的概念。 线程组是多个线程的集合,每个线程属于一个线程组。 当一个线程被创建时,用户可以显示地说明为它创建一个线程组,也可以缺省,此时归入其父进程所在的线程组。 一个线程被创建后,不能更改或移入其他的线程组。 可以为线程组设置不同的特性和安全保密方法。 4.3 多线程的实现 1.基于线程的操作系统的分类 (1)单进程和单线程系统(MS-DOS) 系统中只有一个进程,且每个进程中只有一个线程。 (2)多进程和单线程系统(UNIX) 系统中有多个进程,但每个进程中只有一个线程。 (3)单进程和多线程系统 系统中只有一个进程,但每个进程中有多个线程。 (4)多进程和多线程系统(Windows NT) 系统中有多个进程,且每个进程中有多个线程。 4.3 多线程的实现 2.线程的种类 两类:用户级线程和内核支持级线程。 (1)用户级线程ULT(User-Level Thread) 由用户程序建立的线程,并由用户程序负责对线程的调度和管理。 用户级线程运行于用户地址空间,与线程管理相关的数据结构位于同一进程的用户地址空间内,因此,它的创建、切换和撤消均与系统内核无关。 管理线程运行的线程库也运行在用户地址空间内。 4.3 多线程的实现 应用程序提交后,由OS内核为之创建一个进程(由内核管理)。应用程序开始在线程库环境运行时,由线程库为之创建的一个线程,随着线程的运行,线程可以根据自己的需要创建一个新的线程。 线程库的线程调度算法与操作系统的调度算法无关 4.
您可能关注的文档
最近下载
- 吊篮日常检查记录.doc VIP
- 16S401 管道和设备保温、防结露及电伴热.docx VIP
- 2025年黑龙江、吉林、辽宁、内蒙古高考地理试题评价分析与教学反思理试题评价分析与教学反思.docx
- 2019人教版高中数学A版 必修第2册《第九章 统计》大单元整体教学设计[2020课标].pdf
- 人教版(2024)八年级上册英语Unit 1 Happy Holiday教案.docx
- 建筑装饰设计基础第1章电子课件 .pptx VIP
- 心理健康教学课件:七年级上第1课走进心理健康课.pptx
- 天然气调压器切断阀介绍.ppt VIP
- 对外汉语时间教学.ppt VIP
- 《人造板工艺学》课件 第十三单元 生产工艺设计.ppt VIP
文档评论(0)