网站大量收购闲置独家精品文档,联系QQ:2885784924

操作系统简明教程PPT第二章6.pptVIP

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统简明教程PPT第二章6

2.5 线程 2.5.1 线程的引入 进程作为一个独立运行的基本单位——只有进程可以被调度运行,只有进程才能拥有资源。 分配、回收、切换——时空开销 为使进程的程序充分并发执行,同时能尽量减少系统的开销,新想法—— 进程调度运行和拥有资源这两个基本运行单位的属性分开,让进程拥有资源,而让一个新的实体作为调度运行的基本单位。;随着并行技术、网络技术和软件设计技术的发展,给并发程序设计效率带来了一系列新的问题,主要表现在: 进程时空的开销大,频繁的进程调度将耗费大量处理器时间,要为每个进程分配存储空间限制了操作系统中进程的总数。 进程通信的代价大,每次通信均要涉及通信进程之间或通信进程与操作系统之间的信息传递。 进程之间的并发性粒度较粗,并发度不高,过多的进程切换和通信延迟使得细粒度的并发得不偿失。 不适合并行???算和分布并行计算的要求,对于多处理器和分布式的计算环境来说,进程之间大量频繁的通信和切换,会大大降低并行度。 不适合客户/服务器计算的要求。对于C/S 结构来说,那些需要频繁输入输出并同时大量计算的服务器进程(如数据库服务器、事务监督程序)很难体现效率。 ;在引入线程的操作系统中,将进程看作资源集合与线程集合的复合体。 进程拥有资源,属于同一个进程的所有线程可以共享这些资源。此外,每个线程仅有较少的私用资源,如程序计数器、寄存器和栈等。 每一个线程是一个动态对象,它表示进程中的一条控制线索,执行一系列指令操作,是一个相对独立的、可被调度运行的基本单位。 ;在进程的地址空间中可以有多个线程,它们可以并发执行, 这就需要一张单独的表来记录线程控制与管理等信息,这张表称为线程控制表TCB。 其中,每个线程占一项,以记录线程的程序计数器、寄存器的值及状态等信息。 程序计数器可以使线程像进程一样被暂停执行和恢复执行,寄存器的值等可以保存线程暂停执行时的CPU状态。;线程由创建而产生,由撤消而消亡,在生命期间,线程可以处于就绪状态、执行状态和阻塞状态三个基本状态中。 这三个基本状态也像进程一样,会发生变迁,如就绪状态→执行状态,执行状态→阻塞状态,阻塞状态→就绪状态等。;2.5.2 线程的类型 系统如何感知线程的存在? 线程在用户空间还是在系统空间。 不同类型的线程有着不同的属性和使用方法,三种主要的线程类型: 1.内核线程 2.轻量级进程LWP 3.用户线程;1.内核线程 一个内核线程可以独立工作,不需要与一个用户进程联系起来。 创建与回收 负责 共享什么,具有什么? 调度与同步? 开销与使用资源? 运行在系统空间—线程表;2.轻量级进程LWP 一个轻量级进程LWP是一个内核支持的用户线程,运行在用户空间。 内核线程基础上的高层抽象,因此…… 每个进程可以有一个或多个轻量级进程LWP,用户进程通过轻量级进程LWP与内核通信,每一个轻量级进程LWP都由一个单独的内核线程支持 可以被调度并且共享所属进程的地址空间和其它资源;它们可以对I/O设备或其它资源进行系统调用,同时也能在I/O操作或资源访问时被阻塞。 除了内核堆栈和寄存器外,轻量级进程LWP也需要维护一些用户状态,主要包括用户寄存器上下文,当轻量级进程LWP被抢占CPU时这些内容必须保存下来,以便保证下次调度运行的正确进行。 为了节省系统开销,多个用户进程可以多路复用一个轻量级进程LWP,但是只有连接到轻量级进程LWP的进程,才能与内核通信。 ;进程、轻量级进程LWP及内核线程关系图;3.用户线程 用户线程运行在用户空间,内核无需也无法感知它。每个用户线程仅需一个栈和程序计数器PC, 切换速度快。当一个用户线程被阻塞时, 它在停止之前选择并启动它的后继线程。 用户线程的实现是可能的,因为用户线程的上下文可以在没有内核干预的情况下被保存和恢复。每一个用户线程有自己的用户堆栈,一块用来保存用户级寄存器上下文以及如信号屏蔽等状态信息的内存区域。通过保存当前线程的堆栈和寄存器内容,以及装入新调度线程的那些堆栈和寄存器内容,可实现用户线程间的调度和上下文的切换。 ;内核仍然负责进程的切换,因为只有内核具有修改内存管理寄存器的权力。用户线程不是真正地可以调度的实体,内核没有保留它们的一点信息,内核只是简单地调度它们下面的进程,这些进程再使用库函数来调度它们的线程。当进程被抢占时,它们的线程也被抢占。 ;普通进程上的用户线程;2.5.3 线程与进程的比较 在引入了线程的操作系统中,一个进程除拥有资源外,还包括一个或多个线程。下面将进程与线程做一比较: 1.调度 拥有资源的基本单位和独立调度运行的基本单位的变化? 线程的调度?;2

您可能关注的文档

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档