Readers Writers Problem - Semaphore - Systems Lab - C Program


//Readers Writers Problem -OS Lab

Program:
#include<stdio.h>
#include<pthread.h>
#include<semaphore.h>

sem_t mutex,writeblock;
int data = 0,rcount = 0;

void *reader(void *arg)
{
  int f;
  f = ((int)arg);
  sem_wait(&mutex);
  rcount = rcount + 1;
  if(rcount==1)
   sem_wait(&writeblock);
  sem_post(&mutex);
  printf("Data read by the reader%d is %d\n",f,data);
  sleep(1);
  sem_wait(&mutex);
  rcount = rcount - 1;
  if(rcount==0)
   sem_post(&writeblock);
  sem_post(&mutex);
}

void *writer(void *arg)
{
  int f;
  f = ((int) arg);
  sem_wait(&writeblock);
  data++;
  printf("Data writen by the writer%d is %d\n",f,data);
  sleep(1);
  sem_post(&writeblock);
}

main()
{
  int i,b; 
  pthread_t rtid[5],wtid[5];
  sem_init(&mutex,0,1);
  sem_init(&writeblock,0,1);
  for(i=0;i<=2;i++)
  {
    pthread_create(&wtid[i],NULL,writer,(void *)i);
    pthread_create(&rtid[i],NULL,reader,(void *)i);
  }
  for(i=0;i<=2;i++)
  {
    pthread_join(wtid[i],NULL);
    pthread_join(rtid[i],NULL);
  }
}



15 comments:

  1. thnx :) u just helped me out wid my assignment...cheerio :)

    ReplyDelete
  2. Thanks :D ,you just helped me with my lab work.

    ReplyDelete
  3. you are a great man...

    ReplyDelete
  4. how to execute???

    ReplyDelete
  5. thank you so much :) :)

    ReplyDelete
  6. cc filename.c -lpthread -lrt
    you can excute by above format :)

    ReplyDelete
  7. gcc filename.c -o output -pthread && clear && ./output

    ReplyDelete
  8. can u tell me which priority is it follow??
    either reader or writer or both

    ReplyDelete
  9. give output for the program

    ReplyDelete
  10. How to design and implement an Automatic Car Manufacturing System (ACMS) software that is used in automobile assembly plant in Linux platform. The functioning of ACMS is as follows. Different tasks such as assembling of chassis, body, paint, interior assembly, etc. are handled by different units of the system. Each unit is responsible to complete its operation based on the required variants within specified time limit.

    ReplyDelete
  11. If I'm not wrong you have given priority to the reader here?
    If possible could anyone explain the code to me.

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...