第四章 互斥与同步..ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三个概念 竞争条件:多各进程或线程在读写一个公共数据时,结果依赖于它们执行的相对时间,这种情形称做竞争。 饥饿:一个可以运行的进程无限期地被调度器忽视,不能被调度的状态。 死锁:两个或两个以上进程因互相等待,使得每个进程都不能继续向前推进的状态。 进程的交互 (2) P.V操作必须成对出现,有一个P操作就一定有一个V 操作。 互斥信号量的P操作和V操作在同一进程成对出现。 资源信号量用于同步操作时,则不在同一进程中成对出现。 两个P操作在一起,P操作的顺序至关重要:资源信号量的P操作在互斥信号量的P操作前,V操作的顺序无关紧要。 8. P.V操作讨论 (3) P.V操作的优缺点 优点: 简单,而且表达能力强(用P.V操作可解决任何同步互斥问题) 缺点: 不够安全。P.V操作使用不当会出现死锁,遇到复杂同步互斥问题时实现复杂。 若A、B两进程共享数据D和E。A、B同步过程中的P、V操作描述如下:(semaphore Dmutex=1, Emutex=1;) Process A: { … Wait(Dmutex);…① Wait(Emutex);….③ … Signal(Emutex); Signal(Dmutex); …} Process B: { … Wait(Emutex);….② Wait(Dmutex);….④ … Signal(Dmutex); Signal(Emutex); …} 问题:若A、B按所标注的序号执行,结果如何? 9.信号量集机制 如果并发执行的进程在执行的过程中,需要互斥访问多 个不同类的临界资源,需要设置多个信号量。为了更好地解决多个临界资源的互斥问题,引入了信号量集机制。 (1)AND型信号量集机制(一次性分配资源) 原理:将进程在运行中所需要的临界资源一次性全部分配给该进程,如果有一个资源不能到位,所有其它资源也都将不再分配给该进程。用完后所有的临界资源一次性释放。 4.4 信号量 Swait(S1,S2,…Sn) { if (S1≥1 and S2≥1 and…and Sn≥1) for ( i=1;i≤ n;i++) Si=Si-1; else 把该进程插入相应的等待队列。 } P、V操作的类代码如下: Ssignal(S1,S2,…Sn) { for (i=1;i≤ n;i++) Si=Si+1; 把相关的等待Si的进程从阻塞队列转入就绪队列,等待调度。} (2)一般“信号量集”机制 一般信号量集机制是针对那些一次申请多个临界资源,而且对某类临界资源的需求可能不止一个的进程之间的互斥情况。P、V操作的类代码如下: 4.4 信号量 ti表示i类资源的下限值,di表示某进程申请的第i类资源的数目,si的初值应设为系统中i类资源的总数目。 Swait(s1,t1,d1;…;sn,tn,dn) { if (s1≥t1 and …and sn≥tn) for (i=1;i≤n;i++) si=si-di; else 把该进程插入相应的等待队列。 } Ssignal(s1,d1;…;sn,dn) { for (i=1;i≤n;i++) si=si+di; 把等待si的进程从等待队列移入就绪队列,等待调度。 } 一般“信号量集”机制 请大家考虑 Swait(s,d,d,)、Swait (s,1,1)和Swait(s,1,0)三种情况。 用AND解决生产者-消费者问题 parbegin producer: { do{ 生产一数据放入nextp … Swait(empty,mutex); buffer(in)=nextp; in=(in+1)mod n; Ssignal(mutex,full); }while(true) } 用AND解决生产者-消费者问题 comuser: { do{ … Swait(full,mutex); nextc=buffer(out); out=(out+1)mod n;

文档评论(0)

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

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

1亿VIP精品文档

相关文档