Ограниченный буфер с несколькими производителями / потребителями, производящими / потребляющими несколько процессов - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь увидеть, как можно было бы решить проблему ограниченного буфера (с семафорами), но там, где у нас есть несколько производителей / потребителей, где производители могут производить 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);

Есть идеи?

...