现有三个进程,Reader进程把键盘输入的一个整数读入缓冲区B1,Executor进程把B1中的数据取出进行处理,处理完后存到输出缓冲区B2,最后由Printer进程将B2中的数据打印出来。假设B1和B2都只能存放一个整数,请用PV操作管理这三个并发进程的执行。

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

现有三个进程,Reader进程把键盘输入的一个整数读入缓冲区B1,Executor进程把B1中的数据取出进行处理,处理完后存到输出缓冲区B2,最后由Printer进程将B2中的数据打印出来。假设B1和B2都只能存放一个整数,请用PV操作管理这三个并发进程的执行。

本题也可看作是两个生产者消费者问题。Reader进程为生产者,Executor进程既是消费者又是生产者,Printer进程为消费者,由于这里有两个缓冲区,所以要设四个信号量:SR表示是否能把数据存入缓冲区B1,初值为1;SE1表示缓冲区B1中是否已存有数据可供处理,初值为0;SE2表示是否把处理过的数据存入缓冲区B2,初值为1;SP表示缓冲区B2中是否已有数据可供打印,初值为0。用PV操作管理这三个并发进程的程序如下:beginB1,B2:integer;SR,SE1,SE2,SP:semaphore;SR:=1;SE1:=0;SE2:=1;SP:=0;cobeginPROCESSReadernumber:integer;beginL1:readanumber;P(SR);B1:=number;V(SE1);gotoL1end;PROCESSExecutornumber2:integer;beginL2:P(SE1);takeanumberfromB1;V(SR);processthenumbertonumber2;P(SE2);B2:=number2;V(SP);gotoL2end;PROCESSPrinterbeginL3:P(SP);takeanumberfromB2;V(SE2);printthenumber;gotoL3endcoendend

访客
邮箱
网址

通用的占位符缩略图

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


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

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

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