45.(7分)某博物馆最多可容纳500人同时参观,有一个出入口,该出入口一次仅允许一个人通过。参观者的活动描述如下:
cobegin
参观者进程i:
{
…
进门;
…
参观;
…
出门;
…
}
coend
请添加必要的信号量和P、V(或wait( )、signal( ))操作,以实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。
【答案要点】
定义两个信号量
Semaphore empty=500; //博物馆可以容纳的最多人数 (2分)
Semaphore mutex=1; //用于出入口资源的控制 (2分)
cobegin
参观者进程i:
{
…
P(empty);
P(mutex);
进门;
V(mutex);
参观;
P(mutex);
出门;
V(mutex);
V(empty);
…
}
coend(3分)