Skip to content

Commit 4decda4

Browse files
authored
Update one
1 parent 47947f6 commit 4decda4

File tree

1 file changed

+70
-109
lines changed

1 file changed

+70
-109
lines changed

one

+70-109
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,76 @@
1-
#include<stdio.h>
2-
3-
int main()
4-
{
5-
int i, limit, total = 0, x, counter = 0, time_quantum,j;
6-
7-
int wait_time = 0, turnaround_time = 0,pos,z,p[10],prio[10], a_time[20], b_time[10], temp[10],b;
8-
9-
float average_wait_time, average_turnaround_time;
10-
11-
printf("\nEnter Total Number of Processes:");
12-
13-
scanf("%d", &limit);
14-
15-
x = limit;
16-
for(i = 0; i < limit; i++)
17-
{
18-
p[i]=i+1;
19-
20-
prio[i]=0;
21-
printf("\nEnter total Details of Process[%d]\n", i + 1);
22-
printf("Arrival Time:\t");
23-
scanf("%d", &a_time[i]);
24-
printf("Burst Time:\t");
25-
scanf("%d", &b_time[i]);
26-
temp[i] = b_time[i];
27-
}
28-
29-
printf("\nEnter the Time Quantum:");
30-
scanf("%d", &time_quantum);
31-
printf("\nProcess ID\t\tBurst Time\t Turnaround Time\t Waiting Time\t Priority\n");
32-
for(total = 0, i = 0; x != 0;)
33-
{
34-
35-
for(z=0;z<limit;z++)
36-
{
37-
int temp1;
38-
pos=z;
39-
for(j=z+1;j<limit;j++)
40-
{
41-
if(prio[j]<prio[pos])
42-
pos=j;
43-
}
44-
45-
temp1=prio[z];
46-
47-
prio[z]=prio[pos];
48-
49-
prio[pos]=temp1;
50-
51-
temp1=b_time[z];
52-
b_time[z]=b_time[pos];
53-
b_time[pos]=temp1;
54-
temp1=a_time[z];
55-
a_time[z]=a_time[pos];
56-
a_time[pos]=temp1;
57-
58-
temp1=p[z];
59-
p[z]=p[pos];
60-
p[pos]=temp1;
1+
#include<stdio.h>
612

62-
temp1=temp[z];
63-
temp[z]=temp[pos];
64-
temp[pos]=temp1;
65-
}
66-
{
67-
}
68-
69-
if(temp[i] <= time_quantum && temp[i] > 0)
70-
{
71-
total = total + temp[i];
72-
temp[i] = 0;
73-
counter = 1;
74-
}
75-
76-
else if(temp[i] > 0)
77-
{
78-
temp[i] = temp[i] - time_quantum;
79-
total = total + time_quantum;
80-
}
3+
struct process
4+
{
5+
char process_name;
6+
int arrival_time, burst_time, ct, waiting_time, turnaround_time, priority;
7+
int status;
8+
}process_queue[10];
819

82-
for(b=0;b<limit;b++)
83-
{
84-
if(b==i)
85-
prio[b]+=1;
86-
else
87-
prio[b]+=2;
88-
}
10+
int limit;
8911

90-
if(temp[i] == 0 && counter == 1)
91-
{
92-
x--;
93-
printf("\nProcess[%d]\t\t%d\t\t %d\t\t %d\t\t%d", p[i], b_time[i], total - a_time[i], total - a_time[i] - b_time[i],prio[i]);
94-
wait_time = wait_time + total - a_time[i] - b_time[i];
95-
turnaround_time = turnaround_time + total - a_time[i];
96-
counter = 0;
97-
}
98-
if(i == limit - 1)
99-
{
100-
i = 0;
101-
102-
}
103-
else if(a_time[i + 1] <= total)
12+
void Arrival_Time_Sorting()
13+
{
14+
struct process temp;
15+
int i, j;
16+
for(i = 0; i < limit - 1; i++)
17+
{
18+
for(j = i + 1; j < limit; j++)
10419
{
105-
i++;
106-
107-
}
108-
else
20+
if(process_queue[i].arrival_time > process_queue[j].arrival_time)
21+
{
22+
temp = process_queue[i];
23+
process_queue[i] = process_queue[j];
24+
process_queue[j] = temp;
25+
}
26+
}
27+
}
28+
}
29+
30+
void main()
31+
{
32+
int i, time = 0, burst_time = 0, largest;
33+
char c;
34+
float wait_time = 0, turnaround_time = 0, average_waiting_time, average_turnaround_time;
35+
printf("\nEnter Total Number of Processes:\t");
36+
scanf("%d", &limit);
37+
for(i = 0, c = 'A'; i < limit; i++, c++)
38+
{
39+
process_queue[i].process_name = c;
40+
printf("\nEnter Details For Process[%C]:\n", process_queue[i].process_name);
41+
printf("Enter Arrival Time:\t");
42+
scanf("%d", &process_queue[i].arrival_time );
43+
printf("Enter Burst Time:\t");
44+
scanf("%d", &process_queue[i].burst_time);
45+
printf("Enter Priority:\t");
46+
scanf("%d", &process_queue[i].priority);
47+
process_queue[i].status = 0;
48+
burst_time = burst_time + process_queue[i].burst_time;
49+
}
50+
Arrival_Time_Sorting();
51+
process_queue[9].priority = -9999;
52+
printf("\nProcess Name\tArrival Time\tBurst Time\tPriority\tWaiting Time");
53+
for(time = process_queue[0].arrival_time; time < burst_time;)
54+
{
55+
largest = 9;
56+
for(i = 0; i < limit; i++)
10957
{
110-
i = 0;
111-
112-
}
113-
}
114-
return 0;
58+
if(process_queue[i].arrival_time <= time && process_queue[i].status != 1 && process_queue[i].priority > process_queue[largest].priority)
59+
{
60+
largest = i;
61+
}
62+
}
63+
time = time + process_queue[largest].burst_time;
64+
process_queue[largest].ct = time;
65+
process_queue[largest].waiting_time = process_queue[largest].ct - process_queue[largest].arrival_time - process_queue[largest].burst_time;
66+
process_queue[largest].turnaround_time = process_queue[largest].ct - process_queue[largest].arrival_time;
67+
process_queue[largest].status = 1;
68+
wait_time = wait_time + process_queue[largest].waiting_time;
69+
turnaround_time = turnaround_time + process_queue[largest].turnaround_time;
70+
printf("\n%c\t\t%d\t\t%d\t\t%d\t\t%d", process_queue[largest].process_name, process_queue[largest].arrival_time, process_queue[largest].burst_time, process_queue[largest].priority, process_queue[largest].waiting_time);
71+
}
72+
average_waiting_time = wait_time / limit;
73+
average_turnaround_time = turnaround_time / limit;
74+
printf("\n\nAverage waiting time:\t%f\n", average_waiting_time);
75+
printf("Average Turnaround Time:\t%f\n", average_turnaround_time);
11576
}

0 commit comments

Comments
 (0)