document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*---------------------------------------------------------------------------------
  2.  Title: Write a program to implement First Come First Serve scheduling algorithm.
  3. ----------------------------------------------------------------------------------*/
  4.  
  5. #include<stdio.h>
  6. #include<string.h>
  7.  
  8. int n;
  9.  
  10. struct process
  11. {
  12.     int arr[30];
  13.     char prc[30];
  14.     int at,bt,pt;
  15. //  int flags,l,id;
  16.     }p[30];
  17.  
  18. struct tprocess
  19. {
  20.     char prc[30];
  21.     int at,bt;
  22.     }tp1[30];
  23.  
  24. void main()
  25. {
  26.     int at[10],bt[10],wt[10],tat[10],i;
  27.     float awt,sum=0,x;
  28.  
  29.     printf("\\n FCFS (Non-Preempitve) \\n");
  30.     printf("\\n Enter Number of Process : ");
  31.     scanf("%d",&n);
  32.  
  33.     for(i=0; i<n; i++)
  34.     {
  35.         printf("\\n Enter Process Name : ");  
  36.         scanf("%s",p[i].prc);
  37.  
  38.         printf("\\n Enter Burst Time : ");
  39.         scanf("%d",&p[i].bt);
  40.  
  41.         p[i].at = i;
  42.         }
  43.  
  44.     printf("\\n Process Name \\t Burst Time \\t Arrival Time  \\n");
  45.     for(i=0; i<n; i++)
  46.     {
  47.         printf("\\n %s \\t\\t %d \\t\\t %d ",p[i].prc,p[i].bt,p[i].at);
  48.         }
  49.  
  50.     printf("\\n\\n Gaunt Chart : ");
  51.     printf(" 0  %s-->%d ",p[0].prc,p[0].bt);
  52.     wt[0] = 0 - p[0].at;
  53.  
  54.     for(i=1;i<n;i++)
  55.     {
  56.         p[i].bt =p[i].bt+p[i-1].bt;
  57.         printf(" %s-->%d ",p[i].prc,p[i].bt);
  58.  
  59.         if(i == (n-1))  
  60.         {
  61.             x = p[i].bt;
  62.             }
  63.         }
  64.  
  65.     for(i=1; i<n; i++)
  66.     {
  67.         wt[i]=p[i-1].bt-p[i].at;
  68.         }
  69.  
  70.     for(i=0; i<n; i++)
  71.     {
  72.         sum = sum + wt[i];  
  73.         }
  74.  
  75.     awt = sum/n;    
  76.  
  77.     printf("\\n\\n Wating Time : %f ",sum);
  78.     printf("\\n Average Waiting Time : %f",awt);
  79.  
  80.     sum =0 ;
  81.  
  82.     for(i=0; i<n; i++)
  83.     {
  84.         tat[i] = p[i].bt - p[i].at;
  85.         sum=sum + tat[i];
  86.         }
  87.  
  88.     awt=0;
  89.     awt=sum/n;  
  90.     printf("\\n\\n Turn around Time : %f ",sum);
  91.     printf("\\n Average Turn around Time : %f",awt);
  92.  
  93.     awt=0;
  94.     awt=(n/x);
  95.     printf("\\n\\n Throughput : %f ",awt);
  96.     }
  97.  
  98. //end of the program
  99.  
  100. /*
  101. //  OUTPUT
  102. //------------------
  103. gescoe@gescoe-Vostro-230:~/Desktop/TE$ gcc a6_FCFS_NonP.c
  104.  
  105. gescoe@gescoe-Vostro-230:~/Desktop/TE$ ./a.out
  106.  
  107.  FCFS (Non-Preempitve)
  108.  
  109.  Enter Number of Process : 4
  110.  
  111.  Enter Process Name : p1
  112.  
  113.  Enter Burst Time : 8
  114.  
  115.  Enter Process Name : p2
  116.  
  117.  Enter Burst Time : 5
  118.  
  119.  Enter Process Name : p3
  120.  
  121.  Enter Burst Time : 2
  122.  
  123.  Enter Process Name : p4
  124.  
  125.  Enter Burst Time : 7
  126.  
  127.  
  128.  Process Name    Burst  Time   Arrival Time
  129.  
  130.  p1              8               0
  131.  p2              5               1
  132.  p3              2               2
  133.  p4              7               3
  134.  
  135.  Gaunt Chart :  0  p1-->8  p2-->13  p3-->15  p4-->22
  136.  
  137.  Wating Time : 30.000000
  138.  Average Waiting Time : 7.500000
  139.  
  140.  Turn around Time : 52.000000
  141.  Average Turn around Time : 13.000000
  142.  
  143.  Throughput : 0.181818
  144.  
  145. // EXIT
  146.  
  147. */
');