某银行提供了一个服务窗口和10个供顾客等待时使用的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下。 cobegin{ process顾客i{ 从取号机上获取一个号码; 等待叫号; 获取服务; } process营业员{ while(TRUE){ 叫号; 为顾客服务; } } }coend 请添加必要的信号量和P、V操作或wait()、signal()操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。
举一反三
- (8分)某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:cobegin{process顾客i{从取号机获取一个号码;等待叫号;获取服务;}process营业员{while(TRUE){}}}coend叫号;为客户服务;请添加必要的信号量和P、V(或wait、signal)操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。
- 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下请将程序补充完整。
- 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下请将程序补充完整。 Semaphore mutex= 1; Semaphore seats = 10; Semaphore custom = 0; process顾客i { _______(1)________; _______(2)________; 从取号机获得一个号码; _______(3)________; _______(4)________; 等待叫号; _______(5)________; 获得服务; } process营业员 { while (TRUE) { ______(6)______; 叫号; 为顾客服务; } }
- 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。请选择相应位置上信号量的P、V操作。Process 营业员{ while(true){…… //判断是否有等待的顾客叫号; (8) ;;为顾客服务;}} A: P(seatsNum) B: P(custNum) C: V (mut) D: V(seatsNum)
- 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。请选择相应位置上信号量的P、V操作。Process 营业员{ while(true){ (7) ; //判断是否有等待的顾客叫号;……;为顾客服务;}} A: P(seatsNum) B: P(custNum) C: V(custNum) D: V(seatsNum)