-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFIFO.py
More file actions
27 lines (19 loc) · 875 Bytes
/
FIFO.py
File metadata and controls
27 lines (19 loc) · 875 Bytes
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
import sys
def FIFO_scheduler(process_queue, cpu_list, time_for_context_switch):
# While there are still more values in the process_queue, continue scheduling them
time = 0
#Initialize times
min_turnaround_time = sys.maxsize
avg_turnaround_time = sys.maxsize
max_turnaround_time = sys.maxsize
min_init_wait_time = sys.minsize
avg_init_wait_time = sys.minsize
max_init_wait_time = sys.minsize
min_total_wait_time = 0
avg_total_wait_time = 0
max_total_wait_time = 0
while process_queue.empty() is False:
process = process_queue.get()
print("time %(time)dms Process %(pid)d created (requires %(burst)dms CPU time)" % {'time': time, 'pid': process.process_id, 'burst': process.cpu_burst_time})
#Update the wait time for this procedure
process.total_wait_time = process.init_wait_time = time