Producer Consuming Problem Using Semaphores
Producer Consuming Problem Using Semaphores
AIM:
To write a C-program to implement the producer - consumer problem using
semaphores.
ALGORITHM:
#include<stdio.h>
int mutex=1,full-0,empty-3,x=0;
main)
int n;
void producer();
void consumer);
int wait(int);
int signal(int);
printf("n1.PRODUCERn2.CONSUMERn3.EXITn");
while(1) {
printf("nENTER YOUR CHOICEn");
scanf("%d",&n);
switchn)
{case 1:
if(mutex-=1)&&(empty!-0)
producer);
else
printf("BUFFER IS FULL");
break;
26 | Pa ge
case 2:
if(mutexx )&&(full!l-0))
consumer);
else
printf("BUFFER IS EMPTY"%
break:
case 3:
exit(0);
break;
int wait(int s) {
return(--s); }
int signal(int s) {
return(++s); }
void producer() {
mutex=wait(mutex);
full-signal(full);
empty-wait(empty);
X+t;
printf("nproducer produces the item%d",x);
mutex=signal(mutex); }
void consumer() {
mutex-wait(mutex);
full-wait(full);
empty-signal(empty);
printf("n consumer consumes item%d",x);
mutex=signal(mutex);}