生产者-消费者问题
一个生产者和n个消费者共享内存
在此模拟中,一个生产者将m个元素发送给n个消费者。 这些元素以一个元素的容量存储在共享内存段中。 每个元素都包含一个随机整数和一个时间戳。 在模拟结束时,每个使用者将其pid,m个元素及其运行平均时间写入共享的result.txt文件中。
注意:运行平均时间=收集所有m个项目所需的时间。
怎么运行的
信号量:
full:[0,n],初始值为0
空:[0,n],初始值为0
互斥锁:0 || 1,初始值为1(对于共享的results.txt文件)
操作方式:
semDown(semaphore):将信号量的值减一
semOpN(semaphore,value):设置信号量的值
semWaitUntilZero(semaphore):阻塞过程,直到信号量的值为零
制片人: 将新元素发布到共享内存段,将(semOpN)已满和空信号量
1