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.
Submission:
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
Suggestions:
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.
It is not our intention to break the school's academic policy. Posted solutions are meant to be 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 complete the form.
Please provide a valid email address and we will get back to you within 24 hours.
Payment is through PayPal, Buy me a Coffee
or Cryptocurrency.
We are a nonprofit organization however we need funds to keep this organization operating
and to be able to complete our research and development projects.