嗜睡的理发师问题:一个理发店由一个有N张沙发的等候室和一个放有一张理发椅的理发室组成。没有顾客要理发时,理发师便去睡觉。当一个顾客走进理发店时,如果所有的沙发都已被占用,他便离开理发店;否则,如果理发师正在为其他顾客理发,则该顾客就找_张空沙发坐下等待;如果理发师因无顾客正在睡觉,则由新到的顾客唤醒理发师为其理发。在理发完成后,顾客必须付费,直到理发师收费后才能离开理发店。试用信号量实现这一同步问题。
举一反三
- 理发店里有一位理发师,一把理发椅和n把供等候理发的顾客坐的椅子。若没有顾客,理发师便在理发椅上睡觉,一位顾客到来时,顾客必须叫醒理发师,若理发师正在理发时又有顾客来到,若有空椅子可坐,则坐下来等待,否则就离开。试用PV操作实现,并说明信号量的定义和初值
- 复杂的理发店问题。有一个理发店,有m个理发师,店内配置了m个理发椅,分别与理发师一一对应;此外还配置了n个等待席,供顾客在店内等候理发。一旦等候的顾客坐满等候席,只能在门外排队等候进入理发店。试用P、V操作来实现能够保证顾客原则上先来先理发的秩序。要求明确指明顾客进入理发店的时刻、进入理发过程的时刻。这时,需要()。 A: 1个信号量,初值为m+n B: 2个信号量,初值分别为m+n,m C: 2个信号量,初值分别为m+n,n D: 3个信号量,初值分别为m+n,m,n
- 某地有一名热心的理发师,他只给村子里的所有不给自己理发的人理发,而村子里所有不给自己理发的人都来找这位理发师理发。则这位理发师() A: 给自己理发 B: 叫人为他理发 C: 从不理发 D: 不存在
- 小镇上有一名热心的理发师,他只给小镇上所有不给自己理发的人理发。而小镇里所有不为自己理发的人都来找这个理发师理发,那么这位理发师() A: 给自己理发 B: 找人为自己理发 C: 从不理发 D: 没有这样的人
- 我们规定“理发师只给村子里面不给自己理发的人理发”,那么“这个理发师该不该给自己理发”这个问题”是不是一个悖论.()