• 2022-06-09
    某银行提供1个可同时为2个顾客提供服务的柜员机和可用于10个顾客等待座位。 顾客到达银行时,若有空座位,则到取号机领取一个号,等待叫号。取号机每次仅允许一个顾客使用。 当柜员机有空时(当前有<2个顾客在使用柜员机),系统通过叫号选取一位顾客,并为其服务。请用P、V原语(wait和signal操作)实现上述过程的互斥和同步。要求写出完整的过程,说明各信号量的含义并赋初值。begin parbegin pmach; //柜员机进程 pcus_1; pcus_2; pcus_3; ... //顾客进程 parendend
  • /*seets表示空余座位数量的资源信号量,初值为10;mutex互斥信号量,初值为1,用于实现对取号机的互斥访问;empty表示柜员机没有提供服务的位置数量(即空位,无顾客在用的位置)的资源信号量,初值为2(一开始有2个空位);*/Var seets,mutex,empty,full : semaphore:=10,1,2,0;pcus_i: //第i个顾客begin repeat wait(seets); //等待空余座位 wait(mutex);//等待取号机空闲 从取号机获得一个号码; signal(mutex);//离开取号机,使得其他等待取号机的顾客可取号 等待叫号; signal(seets);//离席去使用柜员机 获得柜员机服务; 服务完成; signal(empty);//离开柜员机,柜员机增加一个空位 until falseendpmach: //柜员机进程begin repeat wait(empty);//柜员机有空位,就叫号 叫号; 为顾客服务; until falseend

    举一反三

    内容

    • 0

      某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下请将程序补充完整。 Semaphore mutex= 1; Semaphore seats = 10; Semaphore custom = 0; process顾客i { _______(1)________; _______(2)________; 从取号机获得一个号码; _______(3)________; _______(4)________; 等待叫号; _______(5)________; 获得服务; } process营业员 { while (TRUE) { ______(6)______; 叫号; 为顾客服务; } }

    • 1

      某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。(1)Semaphore mut =() A: 10 B: 0 C: 1 D: 9

    • 2

      某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。请选择相应位置上信号量的P、V操作。Process 顾客{ ( 3 ) ; //找个空座位 ……; //取号机是否空闲 从取号机取号; ……;//释放取号机 ……; 等待叫号; 接受服务;} A: P(mut) B: P(seatsNum) C: V(seatsNum) D: V (mut)

    • 3

      某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。对信号量初始化操作如下:Semaphore custNum = 0;Semaphore seatsNum =( 2 ) A: 1 B: 0 C: 10 D: 9

    • 4

      某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。请选择相应位置上信号量的P、V操作。Process 营业员{ while(true){…… //判断是否有等待的顾客叫号; (8) ;;为顾客服务;}} A: P(seatsNum) B: P(custNum) C: V (mut) D: V(seatsNum)