design and implement a program to simulate round-robin process scheduling. The program must maintain a ready queue and a list of waiting processes. The simulation will run in one unit time steps.
You need to have some program to generate at least 1000 processes each with a mix of CPU burst and IO burst. CPU bursts should be on average 5 to 100 time units. IO bursts should be on average 50 to 1000 time units. In a single process CPU burst could be 60-80% (chosen randomly) of the time and the rest will be IO burst. The process should end in CPU burst. Assume 2 time units to do context switch. Use time quanta of 5, 10, 50, 100, 500, 1000, time units. The data is to be generated using a random number generator and saved in a file in following format:
process id,arrival time,cpu burst, io burst, …,cpu burst -1(end of process)
You should have multiple data files to run the simulation multiple time.
Assume ready-queue capacity of 20, 100, and unbounded (e.g. if capacity is 20, and you have a process arriving, you cannot put it on the ready queue; it has to wait).
Your project report should have the tables presenting following parameters for various quantum values.
• Average turnaround time
• Maximum turnaround time
• Average wait time
• Maximum wait time
• CPU utilization
• Throughput (number of jobs processed per hour).
• Terminate the simulation.