Skip to content

Commit cc0e521

Browse files
committed
add mode to support one cycle execute
1 parent dadfa2c commit cc0e521

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

RR_algo.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
sys.path.append(".")
44
from Grantt_Information import ProcessGrantInfo
55

6+
67
class 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

Comments
 (0)