CONSUMER PRODUCER PROBLEM EXAMPLE SOLUTION

//USE STDIO.H AND STDLIB.H HEADER FILES HERE
int main()
{
int choice,buff_sz=0,buff_lim=0,flag=0;
printf("\nEnter the choice below:\n");
printf("1)Bounded Buffer\n2)Unbounded Buffer\n3)Exit\n");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("\nEnter the Buffer size:");
scanf("%d",&buff_sz);buff_lim=buff_sz;
break;
case 2:flag=1;break;
case 3:exit(0);
default:printf("Wrong choice");exit(0);
}
printf("\n----ACTIONS-----\n");
printf("1)PRODUCE\n2)CONSUME\n3)EXIT");
while(1)
{
printf("\nENTER THE CHOICE(1|2|3)=");
scanf("%d",&choice);
switch(choice)
{
case 1:buff_lim=producer(buff_sz,flag,buff_lim);break;
case 2:buff_lim=consumer(buff_sz,flag,buff_lim);break;
case 3:exit(0);
default:printf("Wrong selection.Give a proper input");continue;
}
}
return 0;
}
int producer(int buff_sz,int flag,int buff_lim)
{
if(flag==0)
{
if(buff_lim!=0){buff_lim--;printf("\nBuffer Free space =%d",buff_lim);
return buff_lim;}
else{printf("\nPRODUCER IS NOT ALLOWED(BUFFER FULL)");return buff_lim;}
}
else{buff_lim++;printf("BUFFER OCCUPIED =%d",buff_lim);return buff_lim;}
}
int consumer(int buff_sz,int flag,int buff_lim)
{
if(flag==0)
{
if(buff_lim!=buff_sz){buff_lim++;printf("\nBuffer Free space =%d",buff_lim);
return buff_lim;}
else {printf("\nCONSUMER IS NOT ALLOWEN(BUFFER EMPTY)");return buff_lim;}
}
else{if(buff_lim!=0){buff_lim--;printf("\nBUFFER OCCUPIES =%d",buff_lim);
return buff_lim;}
else{printf("\nCONSUMER IS NOT ALLOWED(BUFFER EMPTY)");return buff_lim;}}
}

Comments

Amruth S said…
great...try adding the code for dining philosopher using shared memory

Popular Posts