- 1、本文档共175页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内核支持线程KST(Kernel Supported Threads) 内核支持线程在内核的支持下运行,内核在其空间内进行线程(包括用户进程/系统进程中的线程)的创建、调度和管理。 由于内核管理线程,当一个线程执行阻塞系统调用时,内核能调度应用程序内的另一个线程以便执行。而且,在多处理器环境下,内核能在不同处理器上调度线程。 缺点:涉及到用户态和内核态之间的切换,开销大 用户级线程 用户线程在内核之上支持,并在用户层通过线程库来实现。线程库提供对线程的创建、调度和管理的支持而无须内核支持。由于内核并不知道用户级的线程,所以所有线程的创建和调度都是在用户空间内进行的,而无须内核的干预。 优点:线程管理开销小、调度算法可独立于OS、实现上的平台无关性 线程管理代码是用户程序的一部分,可在不支持线程的平台上实现 缺点: 在基于进程机制的OS中,多数系统调用会引起进程阻塞,当一个用户级线程执行系统调用被阻塞,其所在的整个进程会被阻塞,即使还有其他线程可以在应用程序内运行。 不能利用多处理机的并行性,内核每次只为一个进程分配一个CPU. 内核支持线程(KST) 用户级线程(ULT) 利用系统调用 直接 间接 对线程的操作 依靠内核 与内核无关 线程控制块 在内核空间 在用户空间 线程切换开销 大,需用户态/核态切换 小,无模式切换 多处理器支持 好,一个进程的多个线程可在多个CPU上并行执行 差,一个进程只能分配到一个CPU OS调度单位 线程 一个线程阻塞,进程中其他线程还可以执行 进程 一个线程的阻塞会引起整个进程的阻塞 线程调度 OS按照一定的策略调度 线程的调度通常发生在一个进程内部,进程可以按需选择合适的策略,与OS无关 平台无关性 × √ 比较KST与ULT ULT/KST组合方式 将两种方式进行组合 内核支持多KST线程的建立、调度和管理 也允许用户应用程序建立、调度和管理ULT 结合了ULT和KST的优点 既能充分支持多处理机系统 又能利用用户级线程的优点,达到较好性能 2.6.4 线程的实现 内核支持线程的实现 用户级线程的实现 用户级线程与内核级控制线程的连接 内核支持线程的实现 多线程OS在创建进程时,为其分配一个任务数据区PTDA, 其中包含若干线程控制块TCB 每当进程创建一个线程,为其分配一个TCB,并分配必要资源 撤销一个线程时,也要回收资源和TCB 内核支持线程的创建、撤销、调度和切换与进程的十分相似,但比进程上的操作开销小。 用户级线程的实现 用户级线程的实现需借助于中间系统,中间系统有两种实现方式: 运行时系统(Runtime System) 内核控制线程 运行时系统 “运行时系统”,实质上是用于管理和控制线程的函数(过程)集合。其中包括: 创建、撤销线程的函数 线程同步、通信、调度的函数 运行时这些函数驻留在用户空间,作为用户级线程与内核之间的接口,从而实现了用户级线程与内核的无关性。 线程切换时不需要转入核心态,而是由运行时系统中的线程切换过程来执行切换任务,该过程将线程的CPU状态保存在该线程的堆栈中,然后按照一定算法选择一个就绪线程执行。 切换无需进入内核,且操作简单,速度非常快。 内核控制线程 内核控制线程又称为轻型进程LWP(Light Weight Process)。 LWP可通过系统调用获得内核提供的服务。 用户级线程运行时,只要连接到一个LWP,就具有了内核支持线程的所有属性,属于组合方式。 LWP数量有限,一个LWP可被多个用户级线程复用,但只有当前连接的线程才能与内核通信,其余阻塞,或等待LWP。 用户级线程通过LWP访问内核,但内核看到的总是LWP,看不到用户线程,从而实现了内核与用户级线程之间的隔离,实现了两者的无关性。 用户级线程与内核级控制线程的连接 三种连接模型 一对一模型 多对一模型 多对多模型 一对一模型 为每个用户线程设置一个内核控制线程与之连接。一个线程阻塞时,允许调度另一个线程执行。并行能力强,支持多处理机系统。 缺点:每创建一个用户线程就需要创建一个相应的内核线程,开销较大。 创建内核线程的开销会影响应用程序的性能,因此需要限制系统中的线程数量。 Windows NT/2000/xp和OS/2实现了一对一模型。 多对一模型 多对一模型将多个用户级线程映射到一个内核控制线程。 这些用户线程一般属于一个进程,运行在该进程的用户空间,线程的调度和管理在用户空间完成。用户线程需要访问内核时,才映射到一个内核控制线程上,但每次只允许映射一个线程。 优点:线程管理开销小,效率高。 缺点:当一个线程访问内核时阻塞,整个进程都会被阻塞。也不能支持一个进程的多个线程在多处理器上并行运行。 在这种模型中,处理机调度的单位仍然是进程。 Solaris 2所提供的线程库就是
您可能关注的文档
- 瓦里安系列10瓦里安制备色谱系统概览(2006729)2.ppt
- WORD版2013年度3月全国计算机等级考试网络工程师真题与答案解析.doc
- 2012年度6月最具权威中文热歌金曲全面排行榜.doc
- 电机与电气控制技术实训四两台异步电动机错时启动同时停止控制.ppt
- 七年度级政治法律伴我们健康成长.ppt
- 地壳物质构成和物质循环教材.ppt
- 外国封面建立师演讲稿.ppt
- POP海报字体建立.ppt
- 电控点火系统构成与工作原理.ppt
- 第九课protel印制电路板建立与仿真.ppt
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)