P_V操作经典题.docVIP

  • 9
  • 0
  • 约5.29千字
  • 约 10页
  • 2016-11-24 发布于贵州
  • 举报
P就是请求资源,V就是释放资源。   一个司机与售票员的例子   在公共汽车上,为保证乘客的安全,司机和售票员应协调工作:   停车后才能开门,关车门后才能行车。用PV操作来实现他们之间的协调。   S1:是否允许司机启动汽车的变量   S2:是否允许售票员开门的变量   driver()//司机进程   {   while (1)//不停地循环   {   P(S1);//请求启动汽车   启动汽车;   正常行车;   到站停车;   V(S2); //释放开门变量,相当于通知售票员可以开门   }   }   busman()//售票员进程   {   while(1)   {   关车门;   V(S1);//释放开车变量,相当于通知司机可以开车   售票   P(S2);//请求开门   开车门;   上下乘客;   }   } 注意:busman() driver() 两个不停循环的函数 (1) 当图书馆中没有座位时,后到的读者在图书馆为等待(阻塞) (2) 当图书馆中没有座位时,后到的读者不等待,立即回家。 解(1 ) 设信号量:S=100; MUTEX=1 P(S) P(MUTEX) 登记 V(MUTEX) 阅读 P(MUTEX) 注销 V(MUTEX) V(S) 解

文档评论(0)

1亿VIP精品文档

相关文档