计算机操作系统 第三版 2.3进程同步.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统 第三版 2.3进程同步

* 2.7.2 线程间的同步和通信 线程在执行过程中,也会受到制约,也需要传送数据 多线程OS中提供了多种同步机制: 互斥锁 条件变量 计数信号量 多读、单写锁 * Review 什么是进程? 进程控制块的作用? 进程的基本状态转换 为什么引入线程? 线程和进程的分工? * 2.7.3内核支持线程和用户级线程 在线程出现之前,进程的调度和切换是由OS内核负责的,具体说来,就是利用系统调用进入内核,再由内核中的相应处理程序予以完成。 那么线程呢? 线程的实现方式分为: 用户级线程 内核级线程 混合级线程 * 创建、撤销线程 在线程之间传递消息和数据 调度、切换线程 线程的调度也是由用户自行决定的。 内核不知道线程的存在,继续以进程为单位进行调度。 1.用户级线程 用户级线程中,所有的线程管理工作是由应用程序完成的,与OS内核无关。 应用程序通过使用线程库设计成多线程程序。 线程库 * User-Level Threads 通常,执行应用程序时,内核为其创建一个进程。当执行该进程时,从单线程起始。若应用程序被设计成多线程的,则通过调用线程库的派生例程在该进程中创建新线程。 * 用户级线程状态和进程状态间的关系 * 线程2执行系统调用(例如进行一次I/O调用),阻塞了进程B。 由于内核不管理线程,线程2仍处于运行状态。 注意,线程2的运行并不是真正意义上被处理器运行。 该情况下,当进程B再次唤醒时,继续运行线程2。 * 时钟中断到了,内核确定进程B用完了时间片,将调度另一进程执行。 同理,线程2处于运行状态,但不是真正意义上的运行。 当进程B再次调度执行时,继续执行线程2。 * 线程2需要线程1执行的某些动作。 线程2阻塞。 线程1执行。 进程B状态未变。 * 用户级线程的优、缺点 优点: 所有线程管理的数据结构都在一个进程的用户地址空间,所以线程的切换无需陷入内核,故切换开销小,切换速度快。 线程库可提供多种调度算法供应用程序选择,调度灵活。不会扰乱底层的操作系统调度器。 不需要得到内核的支持。不需要对内核进行修改以支持用户级线程。线程库是一组供所有应用程序共享的应用级软件包。 缺点: 一个线程阻塞会导致整个进程中所有的线程阻塞。 在多处理机系统中,同一进程中的多个线程无法调度到多个处理器上执行。 * 2.内核级线程 Windows is an example of this approach 线程由OS内核负责管理。 内核级线程的TCB保存在核心空间,运行需要得到内核的支持。 内核不仅负责进程间线程的调度,还负责同一进程的不同线程间的调度。 * Kernel-Level Threads 改正了用户级线程的两个缺点: 可以把同一进程的多个线程调度到不同处理器中 一个线程阻塞,不会阻塞同一进程的其他线程。 缺点: 即使CPU在同一进程的多个线程之间切换,也要陷入内核,所以切换的速度和效率不如用户级线程。 * VAX Running UNIX-Like Operating System 一般说来: 用户级线程切换 混合型线程切换 内核级线程切换 进程切换时间 思考:能不能将内核支持线程和用户级线程的优点结合起来? ——借助于内核控制线程,即LWP来实现,又称混合级线程。 * 3.Combined Approaches混合级线程 Example is Solaris 线程创建完全在用户空间中完成。 线程的调度和同步也在应用程序中完成。 一个应用程序中的多个用户级线程被映射到内核级线程上。 * 实现了在内核与用户级线程之间的隔离,从而使用户级线程与内核无关 任务1 任务2 任务3 用户级线程 LWP 内核 线程 内核 * Exercise 1.为什么引入线程? 2.在多线程操作系统中,资源分配的基本单位是谁?处理机调度的基本单位是谁? 3.试说明线程具有哪些属性。 * 课前复习 进程间有哪些制约关系?源于什么? 临界资源的特点是什么?什么是互斥? 什么是临界区?共享同一资源的临界区的特点是什么?怎么做到? 同步和互斥的区别是什么? * 课前复习 什么是信号量?试描述semWait 和semSignal操作。 用信号量解决同步和互斥问题的思路 * Review 引入进程的背景. 什么是进程? 如何理解进程的结构特征? * Review 简述PCB的功能。 进程的三种基本状态指的是什么?描述其间的状态转换。 相同状态的进程如何组织? 五状态模型及其状态转换 挂起的概念 七状态模型及其状态转换 * Review 引入进程的背景。 什么是进程? 如何理解进程的结构特征? 简述PCB的功能。 * 2

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档