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

有四个并发进程:R1、R2、W1和W2,它们共享可以存放一个数的缓冲区。进程R1每次从磁盘读入一个数存放到缓冲区,供进程W1打印输出;进程R2每次从键盘读一个数存放到缓冲区,供进程W2打印输出。当缓冲区满时,不允许再向缓冲区存放数据;当缓冲区空时,不允许再从缓冲区取出数据打印输出。试用PV操作进行四个进程的同步管理。

高老师2年前 (2024-03-26)网络操作系统(02335)20

有四个并发进程:R1、R2、W1和W2,它们共享可以存放一个数的缓冲区。进程R1每次从磁盘读入一个数存放到缓冲区,供进程W1打印输出;进程R2每次从键盘读一个数存放到缓冲区,供进程W2打印输出。当缓冲区满时,不允许再向缓冲区存放数据;当缓冲区空时,不允许再从缓冲区取出数据打印输出。试用PV操作进行四个进程的同步管理。

empty,full1,full2:semaphore;
empty=1,full 1=full2=0;
R1()
     从磁盘上读入一个数;
     P (empty);
     将数存放到缓冲区中;
     V(full1);
R2()
     从键盘上读入一个数;
     P (empty);
     将数存放到缓冲区中;
     V (full2);
W1()
       P (full1);
       将缓冲区中的数取出;
       V (empty);
       打印输出;
W2()
       P (full2);
       将数存放到缓冲区中;
       V (empty);
       打印输出;

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

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

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

分享给朋友: