Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Describing process as [#Arrival, #Burst, #Completion, #Scheduled]
- processes = [
- [1, 2, 0, False],
- [2, 5, 0, False],
- [3, 1, 0, False]
- ]
- processes.sort(key=lambda o: o[0])
- # Time quantum
- tq = 1
- # Current time stamp
- time = processes[0][0]
- queue = []
- queue.append(processes[0])
- processes[0][3] = True
- while len(queue) > 0:
- # Schedule the first process for the tq
- time += min(tq, queue[0][1])
- queue[0][1] -= min(tq, queue[0][1])
- # Check for new arrivals
- for p in processes:
- if p[0] <= time and p[3] == False:
- queue.append(p)
- p[3] = True
- # Check for remaining burst time
- if queue[0][1] > 0:
- queue.append(queue[0])
- else:
- queue[0][2] = time
- print(queue[0])
- del queue[0]
Add Comment
Please, Sign In to add comment