福州大学,操作系统,pv操作,理发师问题.docVIP

  • 37
  • 0
  • 约5.71千字
  • 约 10页
  • 2018-02-20 发布于重庆
  • 举报

福州大学,操作系统,pv操作,理发师问题.doc

福州大学,操作系统,pv操作,理发师问题

理发师问题 一个理发师,一把理发椅,n把等候理发的顾客椅子。 (1)如果没有顾客则理发师便在理发椅上睡觉 (2)当有一个顾客到达时,首先看理发师在干什么, 如果理发师在睡觉,则唤醒理发师理发; 如果理发师正在理发,则查看是否有空的顾客椅子可坐, 如果有,坐下等待,如果没有,则离开。 (3)理发师为一位顾客理完发后,查看是否有人在等待, 如果有则唤醒下一位顾客理发,没有则理发师去睡觉 customers=0; //顾客等待服务的信号量 barber=0; //理发师等待顾客的信号量 mutex=1; //互斥信号量 waiting=0; //等待理发的顾客数 CHAIRS=n; //表示椅子的总数为n process barber begin while true do begin p(customers); //顾客数为0,则入睡 P(mutex); //进入临界区 waiting := waiting - 1; //减少顾客数 V(barber); //理发师准备理发 V(mutex); Cut_hair(); End; End; process customer begin P(mutex); //进入临界区 if(waiting CHAIRS) begin waiting :=

文档评论(0)

1亿VIP精品文档

相关文档