producer and consumer
Tue Apr 16 2024 04:15:54 GMT+0000 (Coordinated Universal Time)
Saved by
@prabhas
#include <stdio.h>
#include <stdlib.h>
int mutex = 1, full = 0, empty = 3, x = 0;
void wait(int *s)
{
(*s)--;
}
void signal(int *s)
{
(*s)++;
}
void producer()
{
wait(&mutex);
if (full == empty)
{
printf("Buffer is full\n");
signal(&mutex);
return;
}
empty--;
full++;
x++;
printf("Producer produces the item %d\n", x);
signal(&mutex);
}
void consumer()
{
wait(&mutex);
if (full == 0)
{
printf("Buffer is empty\n");
signal(&mutex);
return;
}
full--;
empty++;
printf("Consumer consumes item %d\n", x);
x--;
signal(&mutex);
}
int main()
{
int n;
printf("\n 1.Producer \n 2.Consumer \n 3.Exit");
while (1)
{
printf("\n Enter your choice:");
scanf("%d", &n);
switch (n)
{
case 1:
if ((mutex == 1) && (empty != 0))
producer();
else
printf("Buffer is full\n");
break;
case 2:
if ((mutex == 1) && (full != 0))
consumer();
else
printf("Buffer is empty\n");
break;
case 3:
exit(0);
break;
}
}
return 0;
}
content_copyCOPY
Comments