Skip to content

Commit 696b191

Browse files
Merge pull request #798 from dashan124/patch-3
Create SJF_non_preemptive.c
2 parents ee7d656 + e17a880 commit 696b191

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#include<stdio.h>
2+
int main(){
3+
int Arrival_time[100],Burst_time[100],TurnAround_time[100]={0},completion_time[100],waiting_time[100],seq[100];
4+
int i,j,count,n,min,p;
5+
float awt,ata;
6+
printf("Enter no. of process: ");
7+
scanf("%d",&n);
8+
printf("Enter their Arrival Time and Burst_time Time\n");
9+
for (i=0;i<n;i++){
10+
printf("process-%d :",i+1);
11+
scanf("%d%d",&Arrival_time[i],&Burst_time[i]);
12+
}
13+
p=Arrival_time[0];
14+
min=0;
15+
for (i=0;i<n && Arrival_time[i]==p;i++){
16+
if (Burst_time[min]>Burst_time[i])
17+
min=i;
18+
}
19+
seq[min]=1;
20+
completion_time[min]=Arrival_time[min]+Burst_time[min];
21+
TurnAround_time[min]=completion_time[min]-Arrival_time[min];
22+
waiting_time[min]=0;
23+
awt=0;
24+
ata=TurnAround_time[min];
25+
count=n-1;
26+
j=min;
27+
while(count>0){
28+
for (i=0;i<n;i++){
29+
if (TurnAround_time[i]==0){
30+
min=i;
31+
while(Arrival_time[i]==Arrival_time[min]){
32+
if (Burst_time[min]>Burst_time[i] && TurnAround_time[i]==0) {
33+
min=i;
34+
}
35+
i++;
36+
}
37+
break;}
38+
}
39+
for (i=0;(i<n && completion_time[j]>= Arrival_time[i]);i++){
40+
if (Burst_time[min]>Burst_time[i] && TurnAround_time[i]==0)
41+
{
42+
min=i;
43+
}
44+
}
45+
seq[min]=n-count+1;
46+
completion_time[min]=Burst_time[min]+completion_time[j];
47+
if (Arrival_time[min]>completion_time[j])
48+
completion_time[min]=Burst_time[min]+Arrival_time[min];
49+
j=min;
50+
TurnAround_time[min]=completion_time[min]-Arrival_time[min];
51+
ata+=TurnAround_time[min];
52+
waiting_time[min]=TurnAround_time[min]-Burst_time[min];
53+
awt+=waiting_time[min];
54+
count-=1;
55+
}
56+
printf("SORTEST JOB FIRST SCHEDULING(NON-PREEMPTIVE)\n");
57+
printf("ProcessNo.\tArrival\t\tBurstTime\tCompletion\tTurnAround\tWaiting\t\tSequence\n");
58+
for (i=0;i<n;i++){
59+
printf("%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",i+1,Arrival_time[i],Burst_time[i],completion_time[i],TurnAround_time[i],waiting_time[i],seq[i]);
60+
}
61+
printf("Average Waiting Time: %f\n",awt/n);
62+
printf("Average TurnAround Time: %f\n",ata/n);
63+
}

0 commit comments

Comments
 (0)