Reader Writer

You might also like

Download as odt, pdf, or txt
Download as odt, pdf, or txt
You are on page 1of 3

Exp no: Reader Writer Problem

Date:

Program:

#include<stdio.h>
#include<stdlib.h>
int mutex;
int n,w,wrt,readcount,ch;
int buffer[50],out=0;
void wait(int *x)
{
while(*x<=0);
*x=*x-1;
}
void signal(int *y)
{
*y=*y+1;
}
void reader()
{
int i;
wait(&mutex);
readcount++;
if(readcount==1)
wait(&wrt);

signal(&mutex);
printf("\n Reader reach......|n");
for(i=0;i<out;i++)
printf("\n%d",buffer[i]);
wait(&mutex);
readcount--;
if(readcount==0)
signal(&wrt);
signal(&mutex);
}
void writer()
{
wait(&wrt);
printf("\n Enter the value to write:\t");
scanf("%d",&w);
buffer[out]=w;
out=out+1;
signal(&wrt);
}

int main()
{
mutex=1;
wrt=1;
readcount=0;
printf("\n Store some 3 values in buffer :\n");
while(out<3)
{
scanf("\n%d",&buffer[out]);
out++;
}
do
{
printf("\n\t1.Reader\n\t2.Writer\n\t3.Exit");
printf("\n Enter ur choice :\t");
scanf("%d",&ch);

switch(ch)
{
case 1:
reader();
break;
case 2:
writer();
break;
case 3:
exit(0);
}
}while(ch<3);
}

Output:

You might also like