Я пытаюсь увидеть, как можно было бы решить проблему ограниченного буфера (с семафорами), но там, где у нас есть несколько производителей / потребителей, где производители могут производить P, а потребители могут потреблять C.
Я понял, как это сделать с несколькими производителями / потребителями следующим образом.Я не уверен, как это изменить, чтобы они могли потреблять / производить C и P количество предметов.
semaphore full = 0
semaphore empty = n
semaphore mutex = 1
//producer
while (1) {
wait(empty);
wait(mutex);
//put in buffer
signal(mutex);
signal(full);
//consumer
while (1) {
wait(full);
wait(mutex);
//remove from buffer
signal(mutex);
signal(empty);
Есть идеи?