进程同步及进程通信.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
semaphore mutex ,SA,SO mutex = 1; SA =0; SO = 0; process 爸爸 while(true){ P(mutex); 放苹果 V(SA); } process 妈妈 while(true){ P(mutex); 放橘子 V(SO); } 如果盘子的容量改为2,且任何时刻只允许爸爸、妈妈、女儿、儿子中的一个进程去访问盘子(放或者取)。 有三个进程A1、A2、A3,它们共享两个缓冲区B1和B2。缓冲区B1中可以存放n件产品,缓冲区B2中可以存放m件产品。进程A1每次生产一件产品,并把产品存入缓冲区B1。进程A2每次生产一件产品,并把产品存入缓冲区B2。进程A3每次从缓冲区B2中取一件产品区消费。为了防止把产品存入已满的缓冲,或者从空缓冲中取产品,或重复取一产品,用PV操作实现它们的相互制约关系。 进程A1 缓冲区B1 n 缓冲区B2 m 进程A2 进程A3 消费 生产 哲学家进餐问题 五个哲学家P1,P2,P3,P4,P5,每两个哲学家之间放一根筷子,每个哲学家必须拿到左右手的两个筷子才能取到面条。 P1 P3 P4 P5 P2 C1 C2 C3 C4 C0 Semaphore S0,S1,S2,S3,S4; S0=1; S1=1;S2=1;S3=1;S4=1; process P1 begin P(S0); 取C0; P(S1); 取C1; 吃面条; 放下C0,C1 V(S0); V(S1); end; process P2 begin P(S1); 取C1; P(S2); 取C2; 吃面条; 放下C1,C2 V(S1); V(S2); end; process P3 begin P(S2); 取C2; P(S3); 取C3; 吃面条; 放下C2,C3 V(S2); V(S3); end; process P4 begin P(S3); 取C3; P(S4); 取C4; 吃面条; 放下C3,C4 V(S3); V(S4); end; process P5 begin P(S4); 取C4; P(S0); 取C0; 吃面条; 放下C4,C0 V(S4); V(S0); end; Semaphore S0,S1,S2,S3,S4; S0=1; S1=1;S2=1;S3=1;S4=1; process P1 begin P(S0); 取C0; P(S1); 取C1; 吃面条; 放下C0,C1 V(S0); V(S1); end; process P2 begin P(S1); 取C1; P(S2); 取C2; 吃面条; 放下C1,C2 V(S1); V(S2); end; process P3 begin P(S2); 取C2; P(S3); 取C3; 吃面条; 放下C2,C3 V(S2); V(S3); end; process P4 begin P(S3); 取C3; P(S4); 取C4; 吃面条; 放下C3,C4 V(S3); V(S4); end; process P5 begin P(S0); 取C0; P(S4); 取C4; 吃面条; 放下C4,C0 V(S0); V(S4); end; 进程通信 并发进程间可以通过PV操作交换信息实现进程的互斥和同步,因此可以把PV操作看做进程间的一种通信方式,但这种通信只交换了少量的信息。 如果进程间要交换大量信息,这种大量信息的传递要有专门的通信机制来实现,通过专门的通信机制实现进程间大量信息的通信方式称为进程通信。 进程通信的常用机制 共享存储区 实现进程间大数据量的通信。 需要用户实现进程的互斥与同步来保证数据一致性。 消息传递方式 直接通信 间接通信:信箱 管道通信 管道:用于连接一个读进程和一个写进程的,已实现进程间通信的一种共享文件,又称为Pipe文件。 管道通信必须互斥、同步。 消息传递 采用消息传递方式通信时,进程间用信件来交换信息。 信件的传递是由通信原语完

文档评论(0)

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

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

1亿VIP精品文档

相关文档