复杂的理发店问题。有一个理发店,有m个理发师,店内配置了m个理发椅,分别与理发师一一对应;此外还配置了n个等待席,供顾客在店内等候理发。一旦等候的顾客坐满等候席,只能在门外排队等候进入理发店。试用P、V操作来实现能够保证顾客原则上先来先理发的秩序。要求明确

admin2013-05-11  22

问题 复杂的理发店问题。有一个理发店,有m个理发师,店内配置了m个理发椅,分别与理发师一一对应;此外还配置了n个等待席,供顾客在店内等候理发。一旦等候的顾客坐满等候席,只能在门外排队等候进入理发店。试用P、V操作来实现能够保证顾客原则上先来先理发的秩序。要求明确指明顾客进入理发店的时刻、进入理发过程的时刻。这时,需要(23)。

选项 A、1个信号量,初值为m+n
B、2个信号量,初值分别为m+n,m
C、2个信号量,初值分别为m+n,n
D、3个信号量,初值分别为m+n,m,n

答案B

解析 本题考查的内容是信号量的概念以及在解决复杂同步、互斥问题中的应用。
   顾客想要理发,他可能需要在两个地方排队:理发店门外和理发店内的等候席上。由于理发店有m个理发椅和n个等候席,当顾客总人数超过m+n时,将在理发店门外等待,一旦有顾客离开理发店,排队的第一名将可以进入:由于理发店只有m个理发椅,当进入理发店的顾客人数超过m个时,第
m个后的顾客将在店内的等候席上等待,当某个顾客理完发,离开了理发椅。等候席上的第一名可以坐上理发椅,开始理发。
   原则上,一个同步或互斥的条件将对应一个信号量,因此为了控制理发店内的秩序,需要设立第1个信号量S1,它的初值为m+n,以保证进入理发店的顾客人数不超过m+n个。
   为了避免进入理发店的顾客蜂拥争抢理发椅,需要设立第2个信号量S2,它的初值为n,以保证不会出现几个顾客同时坐上一把理发椅。
   这样,当到来的顾客人数超过m+n时,前m+n个顾客可以进入理发店,后面的顾客在信号量S1对应的队列上排队(即在理发店门外排队);当进入理发店的顾客人数超过m时,前m个顾客坐上理发椅理发,后面的顾客在信号量S2对应的队列上排队(即在理发店内的等候席上排队)。
   这里需要特别说明的是:进入理发店的顾客人数是不能直接获得的。因为信号量是核心的数据结构,进程是不能对它进行访问的。
   
转载请注明原文地址:https://jikaoti.com/ti/dkf7FFFM
0

相关试题推荐
最新回复(0)