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