经典的进程步问题.pptVIP

  • 23
  • 0
  • 约1.27万字
  • 约 39页
  • 2017-01-01 发布于河南
  • 举报
第三章 进程的描述与控制 2.4 经典的进程同步问题 2.4.1 生产者/消费者问题 2.4.2 哲学家进餐问题 2.4.3 读者/写者问题 2.4.1 生产者/消费者问题 生产者消费者问题是一种同步问题的抽象描述。计算机系统中的每个进程都可以消费(使用)或生产(释放)某类资源。这些资源可以是硬件资源,也可以是软件资源。 当某一进程使用某一资源时,可以看作是消费,称该进程为消费者。而当某一进程释放某一资源时,它就相当于生产者。 问题描述 通过一个有界缓冲区可以把一群生产者p1,p2…,pm,和一群消费者Q1,Q2,…,Qn联系起来。如图 只要缓冲区未满,生产者就可以把产品送入缓冲区; 只要缓冲区未空,消费者就可以从缓冲区中取走物品。 有n个缓冲区的缓冲池 问题分析 为解决生产者消费者问题,应该设两个同步信号量:一个说明空缓冲区的数目,用empty表示,初值为有界缓冲区的大小N,另一个说明已用缓冲区的数目,用full表示,初值为0。 由于在此问题中有M个生产者和N个消费者,它们在执行生产活动和消费活动中要对有界缓冲区进行操作。由于有界缓冲区是一个临界资源,必须互斥使用,所以,另外还需要设置一个互斥信号量mutex,其初值为1。 问题的解 Var mutex,empty,full: semaphore :=1,n,0; buffer: array[0,

文档评论(0)

1亿VIP精品文档

相关文档