Producer Consumer Without Semaphores

Subject: OS (Operating Systems)

Contributed By: Nunugoppula Ajay

Created At: March 10, 2025

Question:


Write a C Program for Producer Consumer Problem Without Using Semaphores

Explanation Video:

Custom Image

Explanation:

 

Source Code:
#include <stdio.h>
#include <stdlib.h>
int mutex = 1;
int full = 0;
int empty = 10, data = 0;
void producer(){
    --mutex;
    ++full;
    --empty;
    data++;
    printf("\nProducer produces item number: %d\n", data);
    ++mutex;
}
void consumer(){
    --mutex;
    --full;
    ++empty;
    printf("\nConsumer consumes item number: %d.\n", data);
    data--;
    ++mutex;
}
int main(){
    int n, i;
    printf("\n1. Enter 1 for Producer"
           "\n2. Enter 2 for Consumer"
           "\n3. Enter 3 to Exit");
    for (i = 1; i > 0; i++){
            printf("\nEnter your choice: ");
            scanf("%d", &n);
            switch (n){
                case 1:
                    if ((mutex == 1) && (empty != 0)){
                        producer();
                    }else{
                        printf("The Buffer is full. New data cannot be produced!");
                    }
                    break;
                case 2:
                    if ((mutex == 1) && (full != 0)){
                        consumer();
                    }else{
                        printf("The Buffer is empty! New data cannot be consumed!");
                    }
                    break;
                case 3:
                    exit(0);
                    break;
            }
    }
    return 0;
}
Share this Article & Support Us:
Status
printf('Loading...');