Operating System - Scheduling algorithms

We'll discuss four major scheduling algorithms here which are following
  • First Come First Serve (FCFS) Scheduling
  • Shortest-Job-First (SJF) Scheduling
  • Priority Scheduling
  • Round Robin(RR) Scheduling
  • Multilevel Queue Scheduling

First Come First Serve (FCFS)

  • Jobs are executed on first come, first serve basis.
  • Easy to understand and implement.
  • Poor in performance as average wait time is high

Wait time of each process is following
ProcessWait Time : Service Time - Arrival Time
P00 - 0 = 0
P15 - 1 = 4
P28 - 2 = 6
P316 - 3 = 13
Average Wait Time: (0+4+6+13) / 4 = 5.55

Shortest Job First (SJF)

  • Best approach to minimize waiting time.
  • Impossible to implement
  • Processer should know in advance how much time process will take.

Wait time of each process is following
ProcessWait Time : Service Time - Arrival Time
P03 - 0 = 3
P10 - 0 = 0
P216 - 2 = 14
P38 - 3 = 5
Average Wait Time: (3+0+14+5) / 4 = 5.50

Priority Based Scheduling

  • Each process is assigned a priority. Process with highest priority is to be executed first and so on.
  • Processes with same priority are executed on first come first serve basis.
  • Priority can be decided based on memory requirements, time requirements or any other resource requirement.

Wait time of each process is following
ProcessWait Time : Service Time - Arrival Time
P09 - 0 = 9
P16 - 1 = 5
P214 - 2 = 12
P30 - 0 = 0
Average Wait Time: (9+5+12+0) / 4 = 6.5

Round Robin Scheduling

  • Each process is provided a fix time to execute called quantum.
  • Once a process is executed for given time period. Process is preempted and other process executes for given time period.
  • Context switching is used to save states of preempted processes.

Wait time of each process is following
ProcessWait Time : Service Time - Arrival Time
P0(0-0) + (12-3) = 9
P1(3-1) = 2
P2(6-2) + (14-9) + (20-17) = 12
P3(9-3) + (17-12) = 11
Average Wait Time: (9+2+12+11) / 4 = 8.5

Multi Queue Scheduling

  • Multiple queues are maintained for processes.
  • Each queue can have its own scheduling algorithms.
  • Priorities are assigned to each queue.