【无标题】操作系统的一道 同步互斥题目

semaphore mutex = 1      //互斥的使用取号机
semaphore empty = 10     //空座位数量
semaphore full = 0       //等待在座位上面的客户数量-有客户才能服务
semaphore service = 0    //等待叫号


cobegin
{
    process 顾客 i
    {
        P(empty);   //确保还有空位,才会取号
        P(mutex);   //互斥地使用取号机
        从取号机获取一个号码;
        V(mutex);   //用完了取号机

        V(full);    //客户坐到座位上面了
        等待叫号;
        V(service)    //等待叫号
        获取服务;
    }
    process 营业员
    {
        While(TRUE)
        {
            P(full) ;  //确保有客户坐到座位上面,才会叫号的
            叫号;
            V(empty) ;  //客户离开座位
            V(service)  //呼叫等待叫号的用户
            为客户服务;
            
        }
    }
}coend

你可能感兴趣的:(操作系统概念,操作系统概念)