Friday, September 4, 2015

first come first serve Operating system c code

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

struct process
{
 char name;
 double BT;

}p[5];
int turn=0;
void startnext(int tid)
{
 if(tid==1)
  return;
 tid++;
}
void run(void *tid)
{
 int i=(int )tid;
 while(turn!=i)
 {
  sleep(p[i].BT);
  p[i].BT=0;
  startnext(i);
  pthread_exit(0);
 }
}


int main(int argc,char *argv[])
{
 pthread_t thrs[5];
 int i,j;
 if(argc==6)
 {
  for(i=0;i<5;i++)
  {
   p[i].name=65+i;
   p[i].BT=atoi(argv[i+1]);
  }
 }
 for (int i = 0; i < 5; i++)
 {
  pthread_create(&thrs[i],NULL,&run,(void *)i);
  pthread_join(thrs[i],NULL);
 }
 return 0;
}

No comments:

Post a Comment

Contributors

Translate