AIM:
To write a C program for implementing Producer Consumer problem using Semaphore.
ALGORITHM:
Step 1: Start the program.
Step 2: Get the choice 1 for Producer, 2 for Consumer.
Step 3: If the choice is 1, the produced buffer size is 1, again if the choice is 1 then buffer size
will be increased[produced buffer = 1 + 1 = 2].
Step 4: If the choice is 2, the consumed buffer size is 1.
Step 5: Stop the program.
PROGRAM:
#include
#include
#define max 5
int n,produced,consumed,buffer[max];
int result,i;
int main()
{
clrscr();
produced=0;
consumed=1;
result=0;
i=0;
while(1)
{
printf("Enter the choice\n");
printf("1.Producer 2.Consumer 3.Exit\n");
scanf("%d",&n);
if(n==3)
exit(0);
else if(n==1)
producer(consumed,buffer[i]);
else if(n==2)
consumer(produced,buffer[i]);
else
exit(0);
}
}
producer(int consumed,int result)
{
if((consumed=1)&&(i
{
result=result+1;
i++;
buffer[i]=result;
produced=1;
printf("Produced bufffer=%d\n",buffer[i]);
consumed=0;
return(produced,result);
}
else
printf("Buffer still to be consumed\n");
}
consumer(int produced,int result)
{
if((produced==1)&&(i>0))
{
consumed=1;
printf("Consumed buffer=%d\n",buffer[i]);
produced=0;
i--;
return(consumed,result);
}
else
printf("Buffer still to be produced");
}
SAMPLE OUTPUT:
[it65@AntiViruS ~]$ cc prodcons.c
[it65@AntiViruS ~]$ ./a.out
Enter the choice
1.Producer 2.Consumer 3.Exit
1
Produced Buffer = 1
Enter the choice
1.Producer 2.Consumer 3.Exit
1
Produced Buffer = 2
Enter the choice
1.Producer 2.Consumer 3.Exit
2
Consumed Buffer = 2
Enter the choice
1.Producer 2.Consumer 3.Exit
2
Consumed Buffer = 1
Enter the choice
1.Producer 2.Consumer 3.Exit
2
Buffer still to be produced
Enter the choice
1.Producer 2.Consumer 3.Exit
RESULT:
Thus C program for implementing Producer Consumer problem using Semaphore has been executed successfully.
No comments:
Post a Comment