-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsjf.c
67 lines (55 loc) · 1.47 KB
/
sjf.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include<stdio.h>
int main()
{
int burstTime[100],process[100],waitingTime[100],turnAroundTime[100],arrivalTime[100];
int x,y,pos,temp;
float sumTr=0,sumW=0;
float avgTr,avgW;
FILE *fptr;
fptr=fopen("input.txt","r+");
//Taking the process from the file
for(x=0;x<10;x++)
{
fscanf(fptr,"%d",&burstTime[x]);
printf("\nP%d: %d",x+1,burstTime[x]);
process[x]=x+1;
}
for (x=1;x<=10-1;x++)
{
y=x;
while (y>0 && burstTime[y-1]>burstTime[y])
{
temp=burstTime[y];
burstTime[y]=burstTime[y-1];
burstTime[y-1]=temp;
temp=process[y];
process[y]=process[y-1];
process[y-1]=temp;
y--;
}
}
waitingTime[0]=0;
//Calculating sum of the waiting time
for(x=1;x<10;x++)
{
waitingTime[x]=0;
for(y=0;y<x;y++)
{
waitingTime[x]+=burstTime[y];
}
sumW+=waitingTime[x];
}
printf("\nProcess\t| Burst Time\t| Waiting Time\t| Turnaround Time");
for(x=0;x<10;x++)
{
//Calculating the sum of turnaround time
turnAroundTime[x]=burstTime[x]+waitingTime[x];
sumTr+=turnAroundTime[x];
printf("\n%d\t|\t%d\t|\t%d\t|\t%d",process[x],burstTime[x],waitingTime[x],turnAroundTime[x]);
}
//Calculating the averages
avgTr=sumTr/10;
avgW=sumW/10;
printf("\n\nAverage Turnaround Time=%.2f\n",avgTr);
printf("\nAverage Waiting Time=%.2f\n",avgW);
}