某博物馆最多可容纳 500 人同时参观, 有一个出入口,该出入口一次仅允许一个人通过。 参观者的活动描述如下:
参观者进程i: { … 进门; … 参观; … 出门; … }
请添加必要的信号量和P、 V(或 wait()、 signal())操作,以实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。
定义两个信号量
Semaphore empty = 500; / / 博物馆可以容纳的最多人数 Semaphore mutex = 1; / / 用于出入口资源的控制 cobegin 参观者进程i; { … P ( empty ); P ( mutex ); 进门; V( mutex ); 参观; P ( mutex ); 出门; V( mutex ); V( empty );
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题