计算机操作系统教程1节.pptVIP

  • 11
  • 0
  • 约2万字
  • 约 94页
  • 2018-04-22 发布于未知
  • 举报
设置两个同步信号量及一互斥信号量 empty:说明空缓冲单元的数目,其初值为有界缓冲区的大小n。 Full: 说明满缓冲单元的数目(即产品数目),其初值为0. Mutex: 说明该有界缓冲区是一临界资源,必须互斥使用, 其初值为1。 “生产者—消费者”问题的解决 “生产者—消费者”问题的同步算法描述 semaphore full=0; /*表示满缓冲区的数目*/ semaphore empty=n; /*表示空缓冲区的数目*/ semaphore mutex=1; /*表示对缓冲区进程操作的互斥信号量*/ Main() { cobegin producer(); consumer(); coend } “生产者—消费者”问题的解决 { while(true) { 生产一个产品; p(empty); P(mutex); 将一个产品送入缓冲区; V(mutex); V(full); } } Producer() { while(true) { p(full); P(mutex); 从缓冲区取走一个产品; V(mutex); V(empty); 消费一个产品; } }

文档评论(0)

1亿VIP精品文档

相关文档