某大型银行办理人民币储蓄业务,由n个储蓄员负责。每个顾客进入银行后先至取号机取一个号,并且在等待区找到空沙发坐下等着叫号。取号机给出的号码依次递增,并假定有足够多的空沙发容纳顾客。当一个储蓄员空闲下来,就叫下一个号。请用信号量和P,V操作正确编写储蓄员进程和顾客进程的程序。
举一反三
- 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。请选择相应位置上信号量的P、V操作。Process 顾客{ ( 3 ) ; //找个空座位 ……; //取号机是否空闲 从取号机取号; ……;//释放取号机 ……; 等待叫号; 接受服务;} A: P(mut) B: P(seatsNum) C: V(seatsNum) D: V (mut)
- 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。请选择相应位置上信号量的P、V操作。Process 顾客{ ……; //找个空座位 ( 4 ) ; //取号机是否空闲 从取号机取号; ……;//释放取号机 ……; 等待叫号; 接受服务;} A: P(mut) B: P(custNum) C: V (mut) D: V(custNum)
- 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。以下是利用PV操作描述顾客和营业员协同工作的活动过程,其中信号量mut是管理取号机的互斥信号量; seatsNum表示空余座位数量; custNum表示顾客数量。请选择相应位置上信号量的P、V操作。Process 顾客{ ……; //找个空座位 …… ; //取号机是否空闲 从取号机取号; ( 5 ) ;//释放取号机 ……; 等待叫号; 接受服务;} A: P(custNum) B: P (mut) C: V(custNum) D: V (mut)
- 某银行最多可容纳N名顾客,满员后超过的顾客只能等待。顾客进入银行后通过取号机进行取号,由银行工作人员进行叫号,提供服务。受疫情影响,银行只有一个工作人员。请用信号量实现之。(国家职业等级四级考试题目)
- (8分)某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:cobegin{process顾客i{从取号机获取一个号码;等待叫号;获取服务;}process营业员{while(TRUE){}}}coend叫号;为客户服务;请添加必要的信号量和P、V(或wait、signal)操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。