-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRoundRobin.py
84 lines (65 loc) · 2.49 KB
/
RoundRobin.py
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Code For Round Robin
def arrival_time_initialize(arrival_time):
arrival_time[0] = 0
arrival_time[1] = 2
arrival_time[2] = 3
arrival_time[3] = 5
arrival_time[4] = 9
...
def burst_time_initialize(burst_time):
burst_time[0] = 3
burst_time[1] = 8
burst_time[2] = 4
burst_time[3] = 2
burst_time[4] = 5
...
def remaining_time_initialize(remaining_time):
remaining_time[0] = 3
remaining_time[1] = 8
remaining_time[2] = 4
remaining_time[3] = 2
remaining_time[4] = 5
...
def running_process():
remaining_process = 5
process_no = 0
waiting_time = 0
process_time_in_cpu=0
turn_around_time=0
while remaining_process != 0:
if remaining_time[process_no] < time_quantum or remaining_time[process_no] == time_quantum and remaining_time[ process_no] > 0:
process_time_in_cpu += remaining_time[process_no]
remaining_time[process_no] = 0
flag = 1
elif remaining_time[process_no] > 0:
remaining_time[process_no] -= time_quantum
process_time_in_cpu += time_quantum
...
if remaining_time[process_no] == 0 and flag == 1:
remaining_process = remaining_process - 1
print(str("P") + str(process_no + 1) + ' \t\t \t ' + str(process_time_in_cpu - arrival_time[process_no]) + ' \t \t \t ' + str(process_time_in_cpu - arrival_time[process_no] - burst_time[process_no]))
waiting_time += process_time_in_cpu - arrival_time[process_no] - burst_time[process_no]
turn_around_time += process_time_in_cpu - arrival_time[process_no]
flag = 0
if process_no == no_of_process - 1:
process_no = 0
elif arrival_time[process_no + 1] <= process_time_in_cpu:
process_no = process_no + 1
else:
process_no = 0
...
...
print(str("Average Waiting Time :") + '\t' + str(waiting_time / no_of_process))
print(str("Average Turnaround Time :") + '\t' + str(turn_around_time / no_of_process))
...
# Main Body
no_of_process = 5
arrival_time = [None] * 5
burst_time = [None] * 5
remaining_time = [None] * 5
time_quantum = 2
arrival_time_initialize(arrival_time)
burst_time_initialize(burst_time)
remaining_time_initialize(remaining_time)
print(str("Processes") + ' ' + str("Turnaround Time") + ' ' + str("Waiting Time"))
running_process()