Write a CPU scheduling program using Round Robin algorithm.

The simulation should implement:

  • Clock – timestamps all events for processes - creation time, completion time
  • Process creator – creates processes at arrival time (user-specified)
  • CPU – runs processes for a time slice (user-specified).
  • A FIFO Ready queue used by both the process creator and CPU
  • Process arrival time – the time between the arrival of new processes into the ready queue.
  • Processes service time – amount of time required by the processes to complete execution.
  • Time quantum – the time each process can spend in the CPU, before it is removed.
  • Context switch – the number of times a process is switched

Performance Measurement Criteria should include the following:

  • Average waiting time
  • Average turnaround time
  • CPU utilization
  • Throughput

Present the result of the performance of the Round Robin scheduling algorithm for four different time quantum.

Note - This CPU scheduling simulator is not required to simulate the I/O operation, I/O waiting state, or interrupts.


  • A properly documented source code and related output
  • A README file that describes the following
    • Introduction: a brief description of the problem and its goals;
    • Implantation: a brief description of how to implement the RR scheduling algorithm and the queues involved to measure the performance criteria
    • Empirical evaluation: a detailed description of your simulation, performance metrics
    • Analysis of the results
    • Conclusion


  • Understanding of the CPU scheduling algorithm (Round Robin)
  • Goals of scheduling:
    • CPU utilization – keep CPU 100% busy
    • CPU throughput - maximize the number of jobs processed
    • Turnaround time – minimize the time executing a process
    • Waiting time – minimize amt of time process waits in the ready queue
    • Response time – min amt of time from when a request is submitted until the first response (not output) is produced
  • Plan steps involved/requirements
  • Set up the environment for the scheduler
  • Define classes/subclasses used by the scheduler (CPU, clock, process, processcreator, simulator, etc.), FIFO scheduler, and all the parameters involved.
  • Define queues (i.e., ready queue/FIFO and waiting queue) used by the scheduler, the data structure, and mechanisms used for each queue to determine when and which queue a process should enter, and when to be removed to resume execution or be terminated.
  • Keep track of context-switch time
  • Provide input to your simulator (time quantum, process arrival time, number of process, burst time of each process) processcreator– a configuration file of the processes created at arrival time, can be used as input to the simulator, or a randomly generated process set. Using API, inputs can be entered interactively.
  • Output the sequence of events and show how the algorithm is executed and the performance of your scheduling algorithm for the same set of processes and their associated burst time, but different time quantum, in terms of the turnaround time, waiting time, CPU utilization, and throughput.
  • Empirical evaluation: Full accounting and statistics after the simulation completes - create processes with different arrival time and burst time. Run the scheduling algorithm on these processes (i.e., the same set of processes), with four different Time Quantum. Create metrics of the results and get the average of these metrics.
  • Analyze the result.
Academic Honesty!
It is not our intention to break the school's academic policy. Projects posted are only used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly fill out the form. Please provide a valid email address and we'll get back to you in less than 24 hours. We will be sending an invoice through PayPal upon confirmation. We are a non profit organization however we need an amount to keep this organization running, and to be able to complete our research and development.