33sys .path .append ("." )
44from Grantt_Information import ProcessGrantInfo
55
6+
67class RoundRobin :
78 processes = []
9+ mode = ''
810 grantt_chart = []
911
10- def __init__ (self , processes ):
12+ def __init__ (self , processes , mode = '' ):
13+ self .mode = mode
1114 self .processes = processes
1215
1316 def cpu_process (self , time_quantum ):
@@ -35,7 +38,7 @@ def cpu_process(self, time_quantum):
3538
3639 sub_count = ready_processes_queue [0 ][1 ]
3740 current_process = ready_processes_queue [0 ][0 ]
38- pre_current_process = current_process .cpu_burst_time1 + current_process .cpu_burst_time2 + current_process .io_time
41+ pre_current_process = current_process .cpu_burst_time1 + current_process .cpu_burst_time2 + current_process .io_time
3942 if current_process .cpu_burst_time1 > 0 and current_process .arrival_time <= current_cpu_time :
4043 not_entered = True
4144 for element in self .grantt_chart :
@@ -58,11 +61,13 @@ def cpu_process(self, time_quantum):
5861 else :
5962 current_cpu_time += time_quantum
6063
61- if current_process .cpu_burst_time1 <= 0 and current_process .arrival_time <= current_cpu_time and processes_next_ready_queue [str (current_process .process_id )] <= current_cpu_time :
64+ if current_process .cpu_burst_time1 <= 0 and current_process .arrival_time <= current_cpu_time and \
65+ processes_next_ready_queue [str (current_process .process_id )] <= current_cpu_time :
6266 if current_process .io_time > 0 :
6367 ready_processes_queue [0 ][1 ] = 0 # sub_count = 0
6468 sub_count = 0
65- processes_next_ready_queue [str (current_process .process_id )] = current_cpu_time + current_process .io_time
69+ processes_next_ready_queue [
70+ str (current_process .process_id )] = current_cpu_time + current_process .io_time
6671
6772 for info in self .grantt_chart :
6873 if info .process .process_id == current_process .process_id :
@@ -96,13 +101,13 @@ def cpu_process(self, time_quantum):
96101 break
97102
98103 # if ready_processes_queue[0][1] != sub_count or finished:
99- current_process_value = current_process .cpu_burst_time1 + current_process .cpu_burst_time2 + current_process .io_time
104+ current_process_value = current_process .cpu_burst_time1 + current_process .cpu_burst_time2 + current_process .io_time
100105 if pre_current_process != current_process_value :
101106 ready_processes_queue .pop (0 )
102107 if current_process .cpu_burst_time2 > 0 or current_process .cpu_burst_time1 > 0 or current_process .io_time > 0 :
103108 ready_processes_queue .append ([current_process , sub_count ])
104109 # if current_process.cpu_burst_time2 + current_process.cpu_burst_time1 + current_process.io_time <= 0:
105- # ready_processes_queue.pop(0)
110+ # ready_processes_queue.pop(0)
106111 if len (self .processes ) <= 0 and len (ready_processes_queue ) <= 0 :
107112 break
108113
0 commit comments