睡眠理发师问题+++操作系统课设
睡眠理发师问题+++操作系PV操作代码如下: int waiting=0 ; //等候理发的顾客数 int chairs=n; //为顾客准备的椅子数 semaphore customers=0, barbers=0,mutex=1; barber() { while(TRUE); //理完一人,还有顾客吗? P(cutomers); //若无顾客,理发师睡眠 P(mutex); //进程互斥 waiting := waiting – 1; //等候顾客数少一个 V(barbers); //理发师去为一个顾客理发 V(mutex); //开放临界区 cut-hair( ); //正在理发} customer() { P(mutex ); //进程互斥 if (waiting) { waiting := waiting+1; // 等候顾客数加1 V(customers); //必要的话唤醒理发师 统课设 ); //进程互斥 if (waiting) { waiting := waiting+1; // 等候顾客数加1 V(customers); //必要的话唤醒理发师 统课设
用户评论
程序源代码有错误啊