操作系统复习习题.docVIP

  • 48
  • 0
  • 约8.53千字
  • 约 10页
  • 2019-11-24 发布于安徽
  • 举报
. . 1.若一只盘子一次只能放一个水果,A只往盘中放苹果,B只往盘中放梨子,C只从盘中取苹果,D只从盘中取梨子。试用:(1) 信号量和P、V操作;(2) 管程,写出同步算法。 解:(1) 采用P、V操作的同步算法如下: semaphore SAB=1; //A、B的资源信号量,同时又是它们的互斥信号量 semaphore SC=0; //C的资源信号量(用于与A同步) semaphore SD=0; //D的资源信号量(用于与B同步) begin parbegin process A: //进程A的算法描述 { while(true) { 取一个苹果; wait(SAB); //测试盘子是否为空 将一苹果放入盘中; signal(SC) //通知C盘中已有苹果(可能唤醒C) } } process C: { while(true) { wait(SC); //测试盘子是否有苹果 从盘中取出苹果; signal(SAB); //通知A(或B)盘子一空(可能唤醒A或B) 消费该苹果; } } process B: //进程B的算法描述 { while(true) { 取一个梨子; wait(SAB); //测试盘子是否为空 将一梨子放入盘中; signal(SD) //通知D盘中已有梨子(可能唤醒D) } }

文档评论(0)

1亿VIP精品文档

相关文档