@@ -24,8 +24,7 @@ def cpu_process(self):
2424 first_time_quantum = 8
2525 sec_time_quantum = 16
2626 self .two_queue_with_diff_quantum (first_time_quantum , sec_time_quantum )
27- third_queue = fcfs_queue () # 0xx1: one cycle execute
28- third_queue .cpu_process ()
27+ self .fcfs_queue ()
2928 return self .grantt_chart
3029
3130 def two_queue_with_diff_quantum (self , fist_time_quantum , second_time_quantum ):
@@ -156,44 +155,21 @@ def two_queue_with_diff_quantum(self, fist_time_quantum, second_time_quantum):
156155 _temp .clear ()
157156
158157 def fcfs_queue (self ):
159- for process in self .processes :
160- if len (self .grantt_chart ) == 0 :
161- self .grantt_chart .append (
162- ProcessGrantInfo (process ,
163- process .arrival_time , # first cpu start
164- process .arrival_time + process .cpu_burst_time1 , # io start time
165- process .arrival_time + process .cpu_burst_time1 + process .io_time , # sec cpu start
166- process .arrival_time + process .cpu_burst_time1 , # first cpu end
167- process .arrival_time + process .cpu_burst_time1 + process .io_time , # io end time
168- process .arrival_time + process .cpu_burst_time1 + process .io_time + process .cpu_burst_time2 )
169- # sec cpu end
170- )
171- else :
172- prev_process_grantt = self .grantt_chart [len (self .grantt_chart ) - 1 ]
173- if process .arrival_time < prev_process_grantt .get_end_time ():
174- self .grantt_chart .append (
175- ProcessGrantInfo (process ,
176- prev_process_grantt .get_end_time () + 0 , # first cpu start
177- prev_process_grantt .get_end_time () + process .cpu_burst_time1 , # io start time
178- prev_process_grantt .get_end_time () + process .cpu_burst_time1 + process .io_time ,
179- # sec cpu start
180- prev_process_grantt .get_end_time () + process .cpu_burst_time1 , # first cpu end
181- prev_process_grantt .get_end_time () + process .cpu_burst_time1 + process .io_time ,
182- # io end time
183- prev_process_grantt .get_end_time () + process .cpu_burst_time1 + process .io_time + process .cpu_burst_time2 )
184- # sec cpu end
185- )
186- else :
187- self .grantt_chart .append (
188- ProcessGrantInfo (process ,
189- process .arrival_time , # first cpu start
190- prev_process_grantt .get_end_time () + process .cpu_burst_time1 , # io start time
191- prev_process_grantt .get_end_time () + process .cpu_burst_time1 + process .io_time ,
192- # sec cpu start
193- prev_process_grantt .get_end_time () + process .cpu_burst_time1 , # first cpu end
194- prev_process_grantt .get_end_time () + process .cpu_burst_time1 + process .io_time ,
195- # io end time
196- prev_process_grantt .get_end_time () + process .cpu_burst_time1 + process .io_time + process .cpu_burst_time2 )
197- # sec cpu end
198- )
199- return self .grantt_chart
158+ for process_info in self .grantt_chart :
159+ if process_info .cpu_start_time1 < 0 :
160+ process_info .cpu_start_time1 = self .current_cpu_time
161+
162+ if process_info .cpu_end_time1 < 0 :
163+ process_info .cpu_end_time1 = process_info .cpu_start_time1 + process_info .process .cpu_burst_time1
164+
165+ if process_info .io_start_time < 0 :
166+ process_info .io_start_time = process_info .cpu_end_time1
167+
168+ if process_info .io_end_time :
169+ process_info .io_start_time = process_info .io_start_time + process_info .process .io_time
170+
171+ if process_info .cpu_start_time2 < 0 :
172+ process_info .cpu_start_time2 = process_info .io_end_time + self .current_cpu_time
173+
174+ elif process_info .cpu_start_time2 > 0 and process_info .process .cpu_burst_time2 > 0 :
175+ process_info .cpu_end_time2 = self .current_cpu_time + process_info .process .cpu_burst_time2
0 commit comments