当前位置:首页 > 操作系统(02326) > 正文内容

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

高老师2年前 (2024-03-26)操作系统(02326)13

现有三个进程,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

扫描二维码免费使用微信小程序搜题/刷题/查看解析。

版权声明:本文由翰林刷题小程序授权发布,如需转载请注明出处。

本文链接:https://doc.20230611.cn/post/434206.html

分享给朋友: