操作系统 教学课件 作者 宗大华 宗涛 陈吉人 8并发性:互斥和同步课件.pptVIP

操作系统 教学课件 作者 宗大华 宗涛 陈吉人 8并发性:互斥和同步课件.ppt

  1. 1、本文档共34页,可阅读全部内容。
  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文档。上传文档
查看更多
8.1 互斥和同步 8.2 实现互斥的方法讨论 8.2.1 实现互斥的硬件方法 8.3 信号量与P、V操作 8.3.1 信号量与P、V操作定义 8.3.2 用P、V操作实现互斥 8.3.3 用P、V操作实现同步 8.3.4 用P、V操作实现资源分配 8.3.5 管程 8.4 互斥、同步的样例分析 8.4.1 读者-写者问题 8.4.2 哲学家就餐问题 8.4.3 理发师理发问题 8.5 高级进程通信 8.5.1 消息缓冲通信 8.5.2 信箱通信 . 理发师程序barber()的代码描述如下: barber() { while(TRUE) { *P(custs); /* 是否有顾客等待理发 */ P(mutex); waiting=waiting-1; V(mutex); cut_hair(); /* 调用理发子程序完成理发 */ **V(barbs); } } . 顾客程序customer()的代码描述如下: customer() { P(mutex); if(waitingn) { waiting=waiting+1; *V(custs); V(mutex); **P(barbs); get_haicut(); } else V(mutex); } 功能是在custs上做P操作,判定是否有顾客等待理发。只有通过这个P操作,才表示有顾客理发,于是进入由信号量mutex控制的临界区,确保对变量waiting操作的互斥。然后调用理发子程序cut_hair(),完成理发后,在信号量barbs上做V操作,表示又有一理发师在等待工作。 顾客到达后,执行顾客程序customer(),功能是进入mutex控制的临界区,在有座椅的情况下,对信号量custs做V操作,记录等待理发的顾客数。退出mutex临界区后,对信号量barbs做P操作,申请一位理发师为顾客理发。若k个理发师现在都忙,顾客就阻塞在信号量barbs上;否则调用子程序get_haicut(),得到理发师提供的理发服务。 . . . barber()中注有“*”号的P(custs),与customer()中注有“*”号的V(custs)是相互呼应的一对同步信号量操作;barber()中注有“**”号的V(barbs),与customer()中注有“**”号的P(barbs)是相互呼应的又一对同步信号量操作。 返回目录 . 用P、V操作实现的通信,称为进程间的低级通信。为使进程间能真正交换数据,操作系统设计有高级通信命令,提供给用户在程序一级使用。只要准备好所需的参数,直接调用它们就能在进程间传递大量信息。 消息缓冲通信是一种直接通信方式,基本思想是消息发送者在自己的消息发送区形成消息,向系统申请消息缓冲区,把数据从消息发送区移到消息缓冲区中。通过发送命令,把这个消息缓冲区直接发送到消息接收者的消息队列里。接收者从自己的消息队列上摘下消息缓冲区,把里面的数据移到自己的消息接收区里,释放消息缓冲区。 . . 为实现消息缓冲通信,要解决如下问题: 开辟消息缓冲区,每个消息缓冲区的构成是:发送消息的进程名或标识name;发送消息的长度size;发送消息的正文内容text;下一个消息缓冲区的指针nPtr。 (1) (2) 系统要提供发送消息和接收消息的系统调用命令。比如发送命令为Send,接收命令为Receive。 (3) 进程PCB中增设管理消息队列的内容,它们是:消息队列的队首指针 hPtr;mutex——在发送和接收中,Send和Receive都要操作,保证对进程消息队列进行互斥操作的信号量mutex ,初值为1。 * * 8.5.2 信箱通信 第8章 并发性:互斥和同步 8.1 互斥和同步 8.1.1 互斥和临界区 8.1.2 同步 8.2 实现互斥的方法讨论 8.2.1 实现互斥的硬件方法 8.2.2 实现互斥的软件方法 8.3 信号量与P、V操作 8.3.1 信号量与P、V操作定义 8.3.2 用P、V操作实现互斥 8.3.3 用P、V操作实现同步 8.3.4 用P、V操作实现资源分配 8.3.5 管程 8.4 互斥、同步的样例分析 8.4.1 读者-写者问题 8.4.2 哲学家就餐问题 8.4.3 理发师理发问题 8.5 高级进程通信 8.

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档