操作系统-第6章_并发管理素材.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.6.5 死锁的检测 1. 死锁的检测 ① 由系统提供检测算法 例:P140 ②由计算机操作员检测 通常的方法是程序员的经验,如UNIX系统中,可考察进程的运行时间。在UNIX系统中有命令PS可显示进程占用CPU的时间,若发现有一组进程在一段时间内没有占用CPU,就认为这类进程出现了死锁 2. 死锁的恢复 ① 撤消陷于死锁的全部进程; ② 逐个撤消陷于死锁的进程,直到死锁不存在; ③ 从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失; ④ 从某个存在的中间检测点重新启动各死锁进程。 例3: s f Pa Pc Pb main ( ) pa ( ) pb ( ) pc ( ) { { { { int Sac=0; : : p(Sac); int Sbc=0; : : p(Sbc); cobegin : : : pa( ); : : : pb( ); v(Sac); v(Sbc); : pc( ); } } } coend } 2. 共享缓冲区的合作进程的同步 例1: cp iop 缓冲区buf 例:生产者与消费者问题 例:P124 coend; end; 例:P126 coend; end; 例:桌上有一个盘子,每次只能放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放桔子,一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果。试用PV操作实现四个人的同步,并写出程序描述。 同步与互斥的混合问题 P.V操作讨论 信号量的物理含义: S0表示有S个资源可用; S=0表示无资源可用; S0则| S |表示S等待队列中的进程个数。 P(S):表示申请一个资源; V(S)表示释放一个资源。信号量的初值应该大于等于0 P.V操作必须成对出现,有一个P操作就一定有一个V操作 当为互斥操作时,它们同处于同一进程 当为同步操作时,则不在同一进程中出现 如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前,而两个V操作无关紧要 总结:如何描述进程同步问题? 先写出对问题的初步描述(用汉语,流程); 例如司机—售票员问题中: 司机(进程):启动车辆;正常行驶;停车 ②问题中存在的关系(互斥、同步,各有几种); 互斥:涉及到对共享资源的访问 同步:涉及到进程之间的执行次序 ③设置信号量(信号量的个数和初值(考虑问题的初始状态),信号量的物理含义); 信号量的初值:0,1,n三种情况 1:表示临界资源; 0:表示进程间的同步(前驱)关系 n:表示若干个资源 总结:如何描述进程同步问题?(续) ④把P、V操作放到合适的位置。 P操作:要控制谁就放在谁的前面; P.V操作实现的是进程之间的低级通讯,所以P.V为低级通讯原语。它只能传递简单的信号,不能传递交换大量信息 如果要在进程间传递大量信息则要用Send / Receive原语(高级通信原语) 目前常用的高级通信方式有信箱通信、消息缓冲通信、管道通信。 发送者名-----进程名 信息(地址和长度) 等/不等回信 回信存放地址

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档