- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
例3:3个进程和两个打印机:SemaphoreS=2P1p2p3Wait(s)Waits)Wait(s)使用打印机;使用打印机;使用打印机;signal(S)signal(S)signal(S)2.利用信号量解决进程同步图2-10前趋图举例概念:并发进程之间存在一种制约关系,一个进程的执行依赖于另一个进程的消息,为一个进程没有得到另一进程的消息时应等待,直到消息到达才被唤醒。例1:Semaphorea,b,c,d,e,f,g;∶=0,0,0,0,0,0,0; p1(){S1;signal(a);signal(b);} p2(){wait(a);S2;signal(c);signal(d);} p3(){wait(b);S3;signal(e);} p4(){wait(c);S4;signal(f);} p5(){beginwait(d);S5;signal(g);} p6(){wait(e);wait(f);wait(g);S6;}例2:A:不断读入记录并送到缓冲区。B:不断地从缓冲中取记录并加工。A和B共享一个缓冲区,且缓冲区只能放一个记录。定义两个信号量:SP:表示是否可以把物品存入缓冲区。初值SP=1SG:表示缓冲区中是否存有物品。初值SG=0While(true){produceanitemnextp;P(sp);Buffer=nextp;V(SG);}While(true){P(sp);nextc=Buffer;V(SG);Consumetheiteminnextc;}例3:R:往缓冲区中存一个数W1:若数为整数,则取某打印W2:若数为偶数,则取其打印S:表示是否可以把数存入缓冲器So:缓冲区中是否有奇数;SE::缓冲区中是否有偶数R:While(true){读一个数到x;wait(s);B=x;If(b%2==0)signal(se);elsesignal(so);}W1:While(true){wait(so);Y=b;signal(s);打印y中数;}W2:While(true){wait(se);Y=b;signal(s);打印y中数;}例4:有一只铁笼子,每次只能放入一只动物,猎手向笼中放入老虎,农民向笼中放入猪,动物园等待取笼中的老虎,饭店等待取笼中的猪,请用记录型信号量来协调他们的工作Semaphoresp,sg1,sg2;?????????sp=1;????????Sg1=0;???sg2=0;???猎手:While(true){取一只老虎;?P(sp);
?把老虎放入铁笼;?V(sg1);}农民:While(true){取一只猪;?P(sp);把猪放入铁笼;?V(sg2);}动物园:While(true){P(sg1);?从铁笼中取老虎;?V(sp);}饭店:While(true){P(sg2);从铁笼中取猪;?V(sp);}例4:有一只铁笼子,每次只能放入一只动物,猎手向笼中放入老虎,农民向笼中放入猪,动物园等待取笼中的老虎,饭店等待取笼中的猪,请用记录型信号量来协调他们的工作Semaphoresp,sg1,sg2;?????????sp=1;????????Sg1=0;???sg2=0;???猎手:While(true){取一只老虎;?P(sp);
?把老虎放入铁笼;?V(sg1);}农民:While(true){取一只猪;?P(sp);把猪放入铁笼;?V(sg2);}动物园:While(true){P(sg1);?从铁笼中取老虎;?V(sp);}饭店:While(true){P(sg2);从铁笼中取猪;?V(sp);}例5:设在公共汽车上,司机和售票员的活动分别是:司机:启动
您可能关注的文档
最近下载
- 中石油HSE培训课件.pptx VIP
- 英格索兰控制器 KT-09B 说明书v1.5(含通讯协议地址表).pdf
- 2022年森林防灭火知识培训考核试题及答案(共100题).docx VIP
- K波段多通道射频收发模块高隔离度设计与实现.docx VIP
- 吉林大学《思想道德与法治 》2023-2024学年第二学期期末试卷.docx VIP
- 自动控制原理(北京交大)中国大学MOOC慕课 章节测验 客观题答案.docx VIP
- 27.3 第2课时 圆锥的侧面积和全面积(课件)九年级数学下册(华东师大版).pptx VIP
- 剪映的基础操作(剪映短视频创作案例教程).pptx VIP
- 闪存储emc规格书emmc08g-t227.pdf VIP
- 家庭常见急症处理方法.pptx VIP
原创力文档


文档评论(0)