(8分)某银行提供 1 个服务窗口和 10 个供顾客等待的座位。顾客到达银行时 若有空 座位 则到取号机

学历类 顾客,座位,银行 已帮助 人

(8分)某银行提供 1 个服务窗口和 10 个供顾客等待的座位。顾客到达银行时,若有空 座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业 员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下: 某银行提供 1 个服务窗口和 10 个供顾客等待的座位。顾客到达银行时,若有空 座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业 员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下: cobegin { process 顾客 i { 从取号机获取一个号码; 等待叫号; 获取服务; } process 营业员 { while(TRUE) { } } }coend 叫号; 为客户服务; 请添加必要的信号量和 P、V(或 wait、signal)操作,实现上述过程中的互斥与同步。 要求写出完整的过程,说明信号量的含义并赋初值。

请帮忙给出正确答案和分析,谢谢!

热搜:β1受体主要分布于以下哪一器官上

答案解析

难度★★☆ 搜索
  • 正确答案:
    semaphore seets = 10, // 有 10 个坐位的资源信号量
    mutex = 1, // 取号机互斥信号量
    haveCustom = 0; // 顾客与营业员同步,无顾客时营业员休息.
    process 顾客
    {
    P(seets); // 等空位 P(mutex); // 申请使用取号机 从取号机上取号;
    V(mutex); // 取号完毕
    V(haveCustom); // 通知营业员有新顾客到来
    等待营业员叫号;
    V(seets); // 离开坐位
    接受服务;
    }
    process 营业员
    {
    while(True)
    {
    P(haveCustom); // 没有顾客则休息 叫号;
    为顾客服务;
    }
    }