某博物馆最多可容纳500人同时参观,有一个出入口,该出人口一次仅允许一个人通过。参观者的活动描述如下: cobegin 参观者进程i; { 进门: 参观; 出门; } coend 请添加必要的信号量和P、V(或wait()、signal())操作,以实现E

admin2015-12-30  30

问题 某博物馆最多可容纳500人同时参观,有一个出入口,该出人口一次仅允许一个人通过。参观者的活动描述如下:
cobegin
参观者进程i;
{
进门:
参观;
出门;
}
coend
请添加必要的信号量和P、V(或wait()、signal())操作,以实现E述过程中的互斥与同步。
要求写出完整的过程,说明信号量的含义并赋初值。

选项

答案出入口一次仅允许一个人通过,设置互斥信号量mutex,初值为1。博物馆最多可同时容纳500个人,故设置信号量empty,初值为500。 Semaphore empty=500;//博物馆可以容纳的最多人数 Semaphore mutex=1;//用于出入口资源的控制 cobegin 参观者进程i: { P(empty);//可容纳人数减1 P(mutex);//互斥使用门1 进门; V(mutex); 参观; P(mutex);//互斥使用门 出门; V(mutex); V(empty);//可容纳人数增1 } coend

解析
转载请注明原文地址:https://kaotiyun.com/show/MoRi777K
0

最新回复(0)