现有三个进程,Reader进程把键盘输入的一个整数读入缓冲区B1,Executor进程把B1中的数据取出进行处理,处理完后存到输

作者:高老师 浏览 0

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

本题也可看做是两个生产者/消费者问题。Reader进程为生产者,Executor进程既是消费者又是生产者,Printer进程为消费者,由于这里有两个缓冲区,所以要设四个信号量:SR表示是否能把数据存人缓冲区B1,初值为1;SE1表示缓冲区B1中是否已存有数据可供处理,初值为0:SE2表示是否把处理过的数据存入缓冲区B2,初值为1;SP表示缓冲区B2中是否已有数据可供打印,初值为0。
用P、V操作管理这三个并发进程的程序如下:


P116


📱 扫码体验刷题小程序

微信小程序二维码

扫一扫使用我们的微信小程序

热门题目

已复制到剪贴板