Guest User

Untitled

a guest
Mar 23rd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. # Describing process as [#Arrival, #Burst, #Completion, #Scheduled]
  2.  
  3. processes = [
  4. [1, 2, 0, False],
  5. [2, 5, 0, False],
  6. [3, 1, 0, False]
  7. ]
  8.  
  9. processes.sort(key=lambda o: o[0])
  10.  
  11. # Time quantum
  12. tq = 1
  13.  
  14. # Current time stamp
  15. time = processes[0][0]
  16.  
  17. queue = []
  18. queue.append(processes[0])
  19. processes[0][3] = True
  20.  
  21. while len(queue) > 0:
  22. # Schedule the first process for the tq
  23. time += min(tq, queue[0][1])
  24. queue[0][1] -= min(tq, queue[0][1])
  25. # Check for new arrivals
  26. for p in processes:
  27. if p[0] <= time and p[3] == False:
  28. queue.append(p)
  29. p[3] = True
  30. # Check for remaining burst time
  31. if queue[0][1] > 0:
  32. queue.append(queue[0])
  33. else:
  34. queue[0][2] = time
  35. print(queue[0])
  36. del queue[0]
Add Comment
Please, Sign In to add comment