Producer consumer

PHOTO EMBED

Sat Mar 22 2025 07:44:53 GMT+0000 (Coordinated Universal Time)

Saved by @Sahithi

#include <stdio.h>

#include <stdlib.h>

int full = 0, empty = 3, x = 0;

void producer();

void consumer();

int wait(int);

int signal(int);

int main() {

    int n;

    

    printf("1. PRODUCER\n2. CONSUMER\n3. EXIT\n");

    

    while (1) {

        printf("ENTER YOUR CHOICE\n");

        scanf("%d", &n);

        

        switch (n) {

            case 1:

                if (empty != 0)

                    producer();

                else

                    printf("BUFFER IS FULL\n");

                break;

                

            case 2:

                if (full != 0)

                    consumer();

                else

                    printf("BUFFER IS EMPTY\n");

                break;

                

            case 3:

                exit(0);

                break;

        }

    }

}

int wait(int s) {

    return (--s);

}

int signal(int s) {

    return (++s);

}

void producer() {

    full = signal(full);

    empty = wait(empty);

    x++;

    printf("In Producer: Produces the item %d\n", x);

}

void consumer() {

    full = wait(full);

    empty = signal(empty);

    printf("In Consumer: Consumes item %d\n", x);

    x--;

}
content_copyCOPY