使用信号量实现生产者-消费者问题 1# define N1002typedefintsemaphore;3semaphore mutex =1;4semaphore empty =N;5semaphore full =0;67voidproduce(){8while(TRUE){9intitem =produce_item();10down( );11down(&mutex);12insert_item(item);13up(&mutex);14up(&full);15}16}1718voidconsumer(){19whi...
使用信号量实现生产者-消费者问题 问题描述:使用一个缓冲区来保存物品,只有缓冲区没有满,生产者才可以放入物品;只有缓冲区不为空,消费者才可以拿走物品。 因为缓冲区属于临界资源,因此需要使用一个互斥量 mutex 来控制对缓冲区的互斥访问。 为了同步生产者和消费者的行为,需要记录缓冲区中物品的数量。数量可以使用信...
在生产者-消费者问题中,假设生产者和消费者共享n个缓冲区,利用互斥信号量mutex实现进程对缓冲池的互斥使用。再令信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。则请补满如下代码: Int in=0,out=0; Item buffer[n]; Semaphore mutex=1,empty=n,full=0; Void main() { Cobegin Proceducer()...