[计算机软件及应用]OS第二章3.pptVIP

  1. 1、本文档共41页,可阅读全部内容。
  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文档。上传文档
查看更多
[计算机软件及应用]OS第二章3

* * 线程间的同步和通信 为支持不同频率的交互操作和不同程度的并行,在多线程OS中提供多种同步机制 互斥锁 用于高频度访问的关键互斥共享程序和数据段的访问控制 条件变量 每个条件变量通常都与一个互斥锁一起使用,互斥锁用于短期锁定,条件变量用于长期等待 信号量机制 私用信号量用来实现同一进程内部线程同步,属于特定进程内部所有,OS不可直接管理;公用信号量用来实现进程间或不同进程间各线程的同步,由OS为它分配空间和管理,比较安全 * * 线程的实现方式 常见的线程实现方式有 内核支持线程 用户级线程 以上两者组合 * * 内核支持线程(KST) 所有线程的创建、撤销、切换等操作都是在OS的内核支持下运行的 内核空间中为每个内核支持线程设置一个TCB,以便内核感知和控制该线程 优点 同进程的多个线程可并行(多处理器系统) 线程被阻塞,可调度本进程甚至其他进程中的线程 体积小,切换快,开销小 内核也可使用多线程,提高系统执行速度和效率 缺点 用户的线程切换开销大,需要在用户态和内核态间切换 * * 用户级线程(ULT) 用户级线程仅存在于用户空间中,此类线程的各种操作均无需利用系统调用实现,其任务控制块位于用户空间,内核不知该进程的存在 优点 线程切换无需转换到内核空间 线程的调度算法可以根据进程需要自行选择 用户级线程的实现与OS平台无关 缺点 一个线程执行系统调用时应使全进程阻塞,而此方法中只能确保一个线程阻塞,本进程其他线程还可以运行 内核分配资源仍以进程为单位,因此一个进程中的多个线程不能并行运行(多处理器环境) * * 组合方式(ULT/KST) 内核支持多KST线程的建立、调度、管理,也允许用户应用程序建立、调度和管理ULT 特点 同一进程内的多个线程可在多处理器上并行执行 阻塞一个线程时,无需阻塞整个进程 * * 内核支持线程的实现 进程创建时在内核空间中为其分配一个任务数据区,其中包括多个TCB,当该进程创建新线程时,为其分配TCB等资源;撤销该线程时,并不立即回收资源和TCB,以便后面创建的新线程使用 内核支持线程的调度与进程调度相似 * * 用户级线程的实现 用户级线程在用户空间实现,具有相同的结构并运行于一个中间系统之上 运行时系统:本质是管理和控制线程的函数集合,线程运行时系统中的所有函数都驻留在用户空间并成为用户级线程与内核间的接口 内核控制线程(轻型进程LWP):LWP共享进程资源,通过系统调用获得内核服务,用户级进程运行时将其自身连接在一个LWP上以获得内核支持,多个用户级线程可以多路复用一个LWP,但只有当前连接到LWP的线程可与内核通信,其余进程阻塞或等待LWP * * 用户级线程与内核控制线程的连接 三种连接模型 一对一模型 为每个用户线程都设置一个内核控制线程与之连接,一个阻塞立即调度另一个,可实现较强的并行能力,但需要限制整个系统的线程数 多对一模型 多个用户线程对应一个内核线程,这些用户线程应归属同一个进程,该方法管理开销小,效率高,但多处理机系统中同一个进程内的多个线程无法并行 多对多模型 多个用户线程映射到多个内核线程,综合了上述两种方法的优点 * * 教学要求 了解顺序程序和并发程序的执行特点 熟练掌握进程状态概念、转换 熟练掌握进程互斥与同步概念 熟练掌握P、V操作和信号量机制的使用 熟练掌握经典进程同步问题的解决办法 了解管程、线程概念 一般掌握进程通信方法及消息缓冲队列机制的设计思想 * * 本章作业 22、24、26、38 思考题 桌上有一空盘,只能放下一只水果。爸爸可向盘中放苹果,也可放桔子,儿子专等吃桔子,女儿专等吃苹果。规定当盘空时一次只能放一只水果供子女取用,请用P、V原语实现爸爸、女儿、儿子三个并发进程的同步。 Operating System 进程管理 Operating System * * 2.5 进程通信 进程通信类型 1 消息传递通信的实现方法 2 消息传递系统实现问题 3 消息缓冲队列通信机制 4 * * 进程通信定义 进程间的信息交换称为进程通信 低级通信:进程间交换少量信息的通信方式,例如进程间的互斥和同步 高级通信:用户可以直接利用OS所提供的一组通信命令,高效的传送大量数据的通信方式,通信过程对用户透明 信号量机制作为通信工具有严重问题 效率低:每次存取的单位数据量小 通信对用户不透明:通信过程是用户手工实现,OS只提供共享存储器 * * 进程通信的类型 共享存储器系统 消息传递系统 管道通信 * * 共享存储器系统 相互通信的进程共享某些数据结构或存储区,进程通过这些共享空间进行通信 基于共享数据结构的通信方式:公用数据结构设置及进程同步处理需要程序员手工完成,属于低

文档评论(0)

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

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

1亿VIP精品文档

相关文档