3-5通信与死锁.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  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文档。上传文档
查看更多
3-5通信与死锁

P.V操作讨论 1) 信号量的物理含义: S0表示有S个资源可用 S=0表示无资源可用 S0则| S |表示S等待队列中的进程个数 P(S):表示申请一个资源 V(S)表示释放一个资源。信号量的初值应该大于等于0 P.V操作讨论 2) P.V操作必须成对出现,有一个P操作就一定有一个V操作 当为互斥操作时,它们同处于同一进程 当为同步操作时,则不在同一进程中出现 如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至 关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前 而两个V操作无关紧要 同步 有A、B两进程,A进程从卡片机读信息入缓冲区,B进程负责加工读进缓冲区的卡片 解:1、设信号量S1:缓冲区中有否可供加工的信息,信号量S2:缓冲区是否为空, 2、S1初始值为0; S2初始值为1。 3、描述为: 一组合作进程,执行顺序如图所示。请用P、V、操作实现各进程之间的同步操作。 经典的生产者─消费者问题 把并发过程的同步和互斥问题一般化,可以得到一个抽象的一般模型,即生产者—消费者问题。 一组生产者Pi,也一组消费者Ci, 假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一个消息。但是这些进程对缓冲池的操作需要互斥。 经典的生产者─消费者问题 可利用互斥信号量mutex使诸进程对缓冲池实现互斥访问; 利用avail表示空缓冲的数量,full 非空缓冲的数量。 进程描述为: 经典问题3- 3.14 哲学家就餐问题 有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只筷子 每个哲学家的行为是思考,感到饥饿,然后吃通心粉 为了吃通心粉,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子 进程间的通信 进程通信的概念 进程通信是指进程之间的信息交换。根据信息量的大小,可把进程之间的通信分成低级通信和高级通信。 低级通信,进程间只能传递状态和控制信息,包括进程互斥和同步所采用的信号量机制,优点速度快,缺点传送信息量小、通信效率低、编程复杂。 高级通信,进程间可以利用系统提供的一组通信命令,高效地传送大量数据,并有共享存储区、消息、管道等多种通信机制。 进程通信的类型 1、消息缓冲机制/消息缓冲队列机制 1、系统:在操作系统空间设置一组缓冲区, 2、发送方:发送进程需要发送消息时,执行send系统调用,产生自愿性中断,进入操作系统, 操作系统为发送进程分配一个空缓冲区, 并将所发送的消息从发送进程copy到缓冲区中, 然后将该载有消息的缓冲区连接到接收进程的消息链链尾, 如此就完成了发送过程。发送进程返回到用户态继续执行。 消息缓冲机制/消息缓冲队列机制 3、接受方:在以后某个时刻,当接收进程执行到receive接收原语时,也产生自愿性中断进入操作系统, 由操作系统将载有消息的缓冲区从消息链中取出, 并把消息内容copy到接收进程空间, 之后收回缓冲区, 如此就完成了消息的接收,接收进程返回到用户态继续进行。 两个进程利用消息缓冲区通信过程 具体实现 具体实现 2、邮箱通信 邮件通信就是由发送进程申请建立一个与接受进程链接的邮箱。 该邮箱是发送者和接受者私有的数据结构,专门用来存放消息。 发送进程发消息送往邮箱,接受进程从邮箱中取出消息,从而完成进程间信息交换。 邮箱通信 邮箱使用规则 1)若发送信件时邮箱已满,则发送进程被置为“等邮箱”状态,直到邮箱有空时才被释放 2)若取信件时邮箱中无信,则接收进程被置为“等信件”状态,直到有信件时才被释放 邮箱通信实现 设信号量 设初值 进程描述 3、管道通信方式 Pipe 3.8 死锁的概念 死锁(Deadlock)是指系统中多个进程无休止地等待永远不会发生的条件,若无外力作用,这些进程都将无法向前推进。 经典的生产者─消费者问题 可利用互斥信号量mutex使诸进程对缓冲池实现互斥访问; 利用avail表示空缓冲的数量,full 非空缓冲的数量。 进程描述为: 死锁举例 死锁的原因和必要条件 产生死锁的原因和必要条件 产生死锁的原因是:系统资源不足;并发进程执行时推进顺序不当。 产生死锁有以下几个必要条件。 (1)互斥条件。 (2)不可抢占条件。 (3)部分分配条件。 (4)循环等待条件。 解决死锁的基本方法 解决死锁的基本方法 死锁的排除方法: 死锁预防: 死锁避免: 死锁检测和恢复: 预防死锁

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档