问题描述:
缓存区是临界资源,各进程必须互斥访问,避免出现资源覆盖的问题(不同的进程同时向缓冲区中输入资源)
设置缓冲区、空闲缓冲区、产品的数量。
实现互斥的P操作一定要在实现同步的P操作之后。
解题思路:
多消费者多生产者问题:
问题:
用P、V操作进行解题:
当省去互斥变量的时:
1. 当省去semaphore mutex = 1 时,在缓冲区为1的情况下,即使不设置专门的互斥变量,mutex也不会出现多个进程同时访问缓冲区的现象。
2.当缓冲区的容量为2时,生产者进程1(father)和生产者进程2(mother)可以同时往缓存区存入东西,于是出现了两个进程同时访问缓冲区的情况,可能导致数据覆盖。
总结: