(7分)系统中有两个生产者进程 P1、P2 和两个消费者进程 C1、C2,共享一个容量为 4 的缓冲区。P1 生产 A 型产品,P2 生产 B 型产品,C1 只消费 A 型产品,C2 只消费 B 型产品。每次生产一个产品,P1 需要 2 个时间单位,P2 需要 1 个时间单位;每次消费一个产品,C1 需要 1 个时间单位,C2 需要 2 个时间单位。缓冲区中 A 型产品和 B 型产品的数量分别不能超过 2 个。进程调度采用优先级调度(优先级 P1>P2>C1>C2,非抢占式)。初始时缓冲区为空,信号量 emptyA=2(A 型产品可用空位),emptyB=2(B 型产品可用空位),fullA=0(A 型产品数量),fullB=0(B 型产品数量),mutex=1(缓冲区互斥锁)。
假设所有进程同时到达,回答以下问题:
(1)写出各进程的同步互斥操作伪代码。(5分)
(2)计算从开始到所有进程都完成生产和消费(每个进程各生产和消费 3 个产品)的总耗时。(2分)
登录后提交答案
暂无评论,来抢沙发