食堂现有三组P1、P2、P3员工负责供应早餐, P1组负责将豆浆装瓶后放在操作台F1上,操作台F1能放30杯豆浆; P2组负责加工油条,将加工好的油条放在操作台F2上,操作台F2能放50根油条; P3组负责在窗口将一杯豆浆和一根油条放在餐盘中发放给排队的同学。初始时操作台F1已经放好了10杯豆浆,操作台F2还没有放油条。请阅读用信号量和PV操作实现以上问题的算法并补充完整。
Var
empty1, empty 2,full1,full2,mutex1,mutex2:semphore;
empty1=___;empty 2=___;
full1=___;full2=___;
mutex1=1;mutex2=1;
Cobegin
Process P1()
{ While(true)
{
___;
P(mutex1);
将一杯豆浆装瓶后放在操作台F1;
V(mutex1);
___;
}
}
Process P2()
{ While(true)
{
___;
P(mutex2);
将一根油条加工好后放在操作台F2;
V(mutex2);
___;
}
}
发表评论