Monday, 2 September 2013

READER WRITER C PROGRAM

/*CSEMATTER.BLOGSPOT.IN
C Program to implement reader writer problem*/
#include<stdio.h>
#include<conio.h>
int ch,write=0,readcount=0;
int main()
{
void writerin();
void writerout();
void readerin();
void readerout();
 do
 {
   printf("\n\t\tCHOICES\n\t\t\n\t1 Writer in\n\t2 Writer out\n\t3.Reader in");
   printf("\n\t3..Reader out\n\t5.exit\nEnter your choice :\n ");
   scanf("%d",&ch);
   switch(ch)
   {
    case 1:
    {
     writerin();
    }
    case 2: 
    {
       writerout();   
     }
     case3:
 {
         readerin();
 }
     case4:
       {readerout();
       }
     case 5:
     break;
    }
 }
while(ch!=5);
getch();
}
void readerout()
{
if(write==1 && readcount>0)
      {
        readcount--;
 }
 else if(write==1 && readcount==0)
        {
      write=0;
         }
  else
 printf("no reader is reading");
}
void readerin()
{
if(write==0 && readcount==0)
      {
      readcount++;
      write=1;
      }
else if(write==1 && readcount>0)
{
readcount++;
}
else
{
printf("writer is writing");
}
}

void writerin()
{
if(readcount==0)
{
write=1;
printf("writer is writing\n");
}
else
{
printf("%d reader are reading..wait for finish\n",readcount);
}
}
void writerout()
{
if(write==1)
{
write=0;
printf("writer is exiting\n");
}
else
{
printf("no writer is writing\n");}
}
}

No comments:

Post a Comment