操作系统进程同步模拟之——博物馆参观问题

问题描述:某博物馆最多可容纳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);        //出门后释放一个空位
    }
 
}

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。