今有三个并发进程R、M、P,他们共享有一个缓冲区,R负责从输入设备读信息,每读一记录后,把它存放在缓冲区;M在缓冲区加工读入的记录;P把加工后的记录打印输出。读入的记录经加工输出后,缓冲区中又可以存放下一个记录。试用PV操作为同步机制写出他们并发执行时能正确工作的程序。

欢迎免费使用小程序搜题/刷题/查看解析,提升学历,成考自考报名,论文代写、论文查重请加客服微信skr-web

今有三个并发进程R、M、P,他们共享有一个缓冲区,R负责从输入设备读信息,每读一记录后,把它存放在缓冲区;M在缓冲区加工读入的记录;P把加工后的记录打印输出。读入的记录经加工输出后,缓冲区中又可以存放下一个记录。试用PV操作为同步机制写出他们并发执行时能正确工作的程序。

S1:表示是否可以把记录放缓冲区。由于缓冲区只能放一条记录,所以S1的初为“1”。S2:表示缓冲区中是否有记录,显然,开始时,初值为“0”。S3:表示是否可以打印输出,显然,开始时,初值为“0”。程序如下:beginBuffer:integer;S1,S2,S3:Semaphore;S1:=1;S2:=0;S3:=0;CobeginprocessRbeginL1:读一条记录信息;P(S1);buffer:=一条记录信息;V(S2);gotoL1end;processMbeginL2:P(S2);加工信息;V(S3);gotoL2end;processPbeginL3:P(S3);V(S1);gotoL3endCoendend

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top