- 1、本文档共147页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上理操作系统第2章
2.7.3 内核支持线程和用户级线程 1. 内核支持线程 这里所谓的内核支持线程,也都同样是在内核的支持下运行的,即无论是用户进程中的线程,还是系统进程中的线程,他们的创建、撤消和切换等,也是依靠内核实现的。此外,在内核空间还为每一个内核支持线程设置了一个线程控制块, 内核是根据该控制块而感知某线程的存在的,并对其加以控制。 2. 用户级线程 用户级线程仅存在于用户空间中。对于这种线程的创建、 撤消、线程之间的同步与通信等功能,都无须利用系统调用来实现。对于用户级线程的切换,通常是发生在一个应用进程的诸多线程之间,这时,也同样无须内核的支持。由于切换的规则远比进程调度和切换的规则简单,因而使线程的切换速度特别快。可见,这种线程是与内核无关的。 2.7.4 线程控制 1. 内核支持线程的实现 图 2 - 13 任务数据区空间 PTDA 进程资源 TCB # 1 TCB # 2 TCB # 3 2. 用户级线程的实现 1) 运行时系统(Runtime System) 所谓“运行时系统”,实质上是用于管理和控制线程的函数(过程)的集合,其中包括用于创建和撤消线程的函数、 线程同步和通信的函数以及实现线程调度的函数等。正因为有这些函数,才能使用户级线程与内核无关。运行时系统中的所有函数都驻留在用户空间,并作为用户级线程与内核之间的接口。 2) 内核控制线程 这种线程又称为轻型进程LWP(Light Weight Process)。 每一个进程都可拥有多个LWP, 同用户级线程一样, 每个LWP都有自己的数据结构(如TCB),其中包括线程标识符、优先级、 状态, 另外还有栈和局部存储区等。 它们也可以共享进程所拥有的资源。LWP可通过系统调用来获得内核提供的服务,这样,当一个用户级线程运行时,只要将它连接到一个LWP上,此时它便具有了内核支持线程的所有属性。 图 2 - 14 利用轻型进程作为中间系统 1、用户级线程(User Level Thread) 定义:是指由用户应用程序建立的线程, 并且由用户服务程序负责所有这些 用户级线程的调度执行和管理工作。 特点:操作系统不知道线程的存在 线程切换不需要核心态特权 调度是应用特定的 用户 空间 内核 空间 P 用户级线程 纯ULT方法 优点:(性能好,开销少) 用户应用程序中的线程开关的开销比内核线程开关的开销要小 线程库的线程调度算法与操作系统的调度算法无关。 用户级线程方法可适用于任何操作系统。操作系统不知道线程的活动,但仍然管理线程的进程的活动 线程库 由操作系统或某些语言提供,供所有用户 应用程序共享,并支持用户应用程序创建、 调度和管理自己的用户级线程。 (应用程序中用户级线程的微内核) 至少需提供以下功能的过程调用: 建立线程、撤消线程、阻塞线程、挂起线 程、恢复线程、调度线程、线程间通讯原 语、线程间同步原语 纯ULT方法 缺点: 进程中某一个线程阻塞可能会引起该进程中所有其他线程被阻塞 可能会发生线程独自垄断对处理器的控制,引起进程中其他线程得不到运行机会 用户线程可能改善并发性,但是不能增加其在多处理器系统中的物理并行性 无法使用内核的保护机制 2、内核级线程 定义:是指由操作系统内核创建、调度和 管理的线程。 2、内核级线程 特点: 内核为进程维护有一个线程表,也为每个线程提供一个线程控制块 所有线程管理由内核完成 内核维护进程和线程的信息 线程之间的切换需要内核支持 以线程为基础进行调度 例子:Windows NT,OS/2 用户 空间 内核 空间 P 内核级线程 纯KLT方法 优点: 内核可调度一个进程中的多个线程同时在多个处理器上并行运行 当进程中的一个线程被阻塞,进程中的其它线程仍可被调度运行 内核过程本身也以线程方式实现 缺点: 同一进程中的线程开关要有两次模式转换 (用户态-内核态-用户态) 3、ULT和KLT结合方法 内核支持多线程的建立、调度和管理。 同时系统中又提供线程库的便利,允许用户 应用程序建立、调度和管理用户级的线程。 用户 空间 内核 空间 P ULT与KLT结合 P 1.如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个? 2. 一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能 作业 作业 某工厂有一个可以存放设备的仓库,总共可以存放8台设备。生产的每一台设备都必须入库,销售部门可以从仓库提出设备供应客户。设备的入库和出库都必须借助运输工
文档评论(0)