Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*---------------------------------------------------------------------------------
- Title: Write a program to implement First Come First Serve scheduling algorithm.
- ----------------------------------------------------------------------------------*/
- #include<stdio.h>
- #include<string.h>
- int n;
- struct process
- {
- int arr[30];
- char prc[30];
- int at,bt,pt;
- // int flags,l,id;
- }p[30];
- struct tprocess
- {
- char prc[30];
- int at,bt;
- }tp1[30];
- void main()
- {
- int at[10],bt[10],wt[10],tat[10],i;
- float awt,sum=0,x;
- printf("\n FCFS (Non-Preempitve) \n");
- printf("\n Enter Number of Process : ");
- scanf("%d",&n);
- for(i=0; i<n; i++)
- {
- printf("\n Enter Process Name : ");
- scanf("%s",p[i].prc);
- printf("\n Enter Burst Time : ");
- scanf("%d",&p[i].bt);
- p[i].at = i;
- }
- printf("\n Process Name \t Burst Time \t Arrival Time \n");
- for(i=0; i<n; i++)
- {
- printf("\n %s \t\t %d \t\t %d ",p[i].prc,p[i].bt,p[i].at);
- }
- printf("\n\n Gaunt Chart : ");
- printf(" 0 %s-->%d ",p[0].prc,p[0].bt);
- wt[0] = 0 - p[0].at;
- for(i=1;i<n;i++)
- {
- p[i].bt =p[i].bt+p[i-1].bt;
- printf(" %s-->%d ",p[i].prc,p[i].bt);
- if(i == (n-1))
- {
- x = p[i].bt;
- }
- }
- for(i=1; i<n; i++)
- {
- wt[i]=p[i-1].bt-p[i].at;
- }
- for(i=0; i<n; i++)
- {
- sum = sum + wt[i];
- }
- awt = sum/n;
- printf("\n\n Wating Time : %f ",sum);
- printf("\n Average Waiting Time : %f",awt);
- sum =0 ;
- for(i=0; i<n; i++)
- {
- tat[i] = p[i].bt - p[i].at;
- sum=sum + tat[i];
- }
- awt=0;
- awt=sum/n;
- printf("\n\n Turn around Time : %f ",sum);
- printf("\n Average Turn around Time : %f",awt);
- awt=0;
- awt=(n/x);
- printf("\n\n Throughput : %f ",awt);
- }
- //end of the program
- /*
- // OUTPUT
- //------------------
- gescoe@gescoe-Vostro-230:~/Desktop/TE$ gcc a6_FCFS_NonP.c
- gescoe@gescoe-Vostro-230:~/Desktop/TE$ ./a.out
- FCFS (Non-Preempitve)
- Enter Number of Process : 4
- Enter Process Name : p1
- Enter Burst Time : 8
- Enter Process Name : p2
- Enter Burst Time : 5
- Enter Process Name : p3
- Enter Burst Time : 2
- Enter Process Name : p4
- Enter Burst Time : 7
- Process Name Burst Time Arrival Time
- p1 8 0
- p2 5 1
- p3 2 2
- p4 7 3
- Gaunt Chart : 0 p1-->8 p2-->13 p3-->15 p4-->22
- Wating Time : 30.000000
- Average Waiting Time : 7.500000
- Turn around Time : 52.000000
- Average Turn around Time : 13.000000
- Throughput : 0.181818
- // EXIT
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement