【正确答案】正确答案:顾客进店后按序取号,并等待叫号;销售人员空闲之后也是按序叫号,并销售面包。因此同步算法只要对顾客取号和销售人员叫号进行合理的同步即可。我们使用两个变量i和j分别记录当前的取号值和叫号值,并各自使用一个互斥信号量用于对i和j的访问和修改。 int i=0,j=0; semaphore mutex—i=1,mutex—j=1; //顾客 Consumer() { 进入面包店; P(mutex—i); 取号i; i++; V(mutex—i), 等待叫号i并购买面包; } //销售人员 Seller() { while(1) { P(mutex—j); if(J
【答案解析】