问题描述:某博物馆最多可容纳500人同时参观,有一个出入口,该出入口一次仅允许一个人通过。
要求:用C编写一个程序来模拟实现上述的问题。要用到P、V原语操作,体现操作系统进程同步模拟的思想。
这是参考伪代码
int mutex=1;//互斥的来使用出入口
int empty=500;//博物馆中的空位数
void visitor()
{
while(true)
{
p(empty) ; //当博物馆还有空位的时才能进入博物馆
p(mutex);
进门; //进门操作是互斥的,一次只允许一个人进去,所以用PV操作包起来
v(mutex);
参观;
p(mutex);
出门; //这个操作也是互斥的,一次只允许一个人出去
v(mutex);
v(empty); //出门后释放一个空位
}
}