Simulação


Produtor

Status: Pronto


#define N 5


while (TRUE) {

    item = produce_item();

    if (count == N)

        sleep();

    insert_item(item);

    count = count + 1;

    if (count == 1)

        wakeup(consumer);

}


count: 0


Consumidor

Status: Pronto


#define N 5


while (TRUE) {

    if (count == 0)

        sleep();

    item = remove_item();

    count = count − 1;

    if (count == N − 1)

        wakeup(producer);

    consume_item(item);

}