• 2022-10-25
    有n个生产者进程向1个有限的缓冲区不断地发送消息,这些消息通过缓冲区分发到m个消费者,缓冲区的大小只可以存放1条消息。生产者和消费者的工作遵循如下规则:(1)生产者和消费者对缓冲区的访问互斥;(2)对每1条放入缓冲区的消息,所有消费者都必须接收1次;(3)缓冲区满时,生产者必须阻塞,缓冲区空时,消费者阻塞。请用信号量和P、V操作组织正确的发送和接收。用类c语言进行描述。
  • [解答]本题的解答采用分离的信号量来实现,可以比较清楚地看到操作的过程。

    内容

    • 0

      在生产者-消费者问题中,缓冲池包含n个缓冲区,应设置empty。它的初值应为( )。 A: 0 B: 1 C: -1 D: -n E: +n

    • 1

      ​在生产者消费者问题中,消费者调用wait(mutex)(mutex是互斥信号量)阻塞的条件是()。​ A: 有生产者进入在往缓冲区存放产品 B: 有消费者进入在从缓冲区读产品 C: 缓冲区空 D: 缓冲区满

    • 2

      在生产者消费者问题中,消费者调用wait(mutex)(mutex是互斥信号量)阻塞的条件是()。 A: 有生产者进入在往缓冲区存放产品 B: 有消费者进入在从缓冲区读产品 C: 缓冲区空 D: 缓冲区满

    • 3

      ‍在生产者消费者问题中,消费者调用wait(mutex)(mutex是互斥信号量)阻塞的条件是( )。‏ A: 有消费者进入在从缓冲区读产品 B: 缓冲区空 C: 有生产者进入在往缓冲区存放产品 D: 缓冲区满

    • 4

      在利用记录型信号量解决生产者-消费者问题中,假设有9个生产者,6个消费者,1个容量为8个缓冲区的缓冲池,用mutex表示对缓冲池的互斥使用,分别用empty,full分别缓冲池中空缓冲区的数量和非空缓冲区的数量,则初始状态下,信号量mutex,empty,full的初始值分别为多少?() A: mutex=8,empty=0,full=1 B: mutex=8,empty=1,full=0 C: mutex=1,empty=0,full=8 D: mutex=1,empty=8,full=0