What is Round Robin?

The name of this algorithm comes from the round-robin principle, where each person gets an equal share of something in turns. It is the oldest, simplest scheduling algorithm, which is mostly used for multitasking.

In Round-robin scheduling, each ready task runs turn by turn only in a cyclic queue for a limited time slice. This algorithm also offers starvation free execution of processes.

Characteristics of Priority Scheduling

  • Round robin is a pre-emptive algorithm
  • The CPU is shifted to the next process after fixed interval time, which is called time quantum/time slice.
  • The process that is preempted is added to the end of the queue.
  • Round robin is a hybrid model which is clock-driven
  • Time slice should be minimum, which is assigned for a specific task that needs to be processed. However, it may differ OS to OS.
  • It is a real time algorithm which responds to the event within a specific time limit.
  • Round robin is one of the oldest, fairest, and easiest algorithm.
  • Widely used scheduling method in traditional OS.

Advantages

  • It doesn’t face the issues of starvation or convoy effect.
  • All the jobs get a fair allocation of CPU.
  • It deals with all process without any priority
  • If you know the total number of processes on the run queue, then you can also assume the worst-case response time for the same process.
  • This scheduling method does not depend upon burst time. That’s why it is easily implementable on the system.
  • Once a process is executed for a specific set of the period, the process is preempted, and another process executes for that given time period.
  • Allows OS to use the Context switching method to save states of preempted processes.
  • It gives the best performance in terms of average response time.

Disadvantages

  • If slicing time of OS is low, the processor output will be reduced.
  • This method spends more time on context switching
  • Its performance heavily depends on time quantum.
  • Priorities cannot be set for the processes.
  • Round-robin scheduling doesn’t give special priority to more important tasks.
  • Decreases comprehension
  • Lower time quantum results in higher the context switching overhead in the system.
  • Finding a correct time quantum is a quite difficult task in this system.

Algorithm

  • Create an array of arrival time ar_time[] which keeps track of arrival time of process Pi
  • Create another array of burst time br_time[] which keeps track of remaining burst time
  • Initialize CPU time to 0; t = 0
  • Repeat these steps until ready queue is empty
    • if br_time[i] > quantum, t = t + quantum, br_time[i] -= quantum
    • else t = t + br_time[i], br_time = 0
Simulate