Process Scheduling Simulation

Introduction

Simulation is a powerful tool that can be employed when designing and selecting scheduling strategies for an operating system. Such simulations allow the consideration of far more details and far more processes than manual or theoretical comparisons. In this project you will implement and test a simulation for round robin process scheduling.

Simulation Development

You will be implementing your scheduling strategies using the simulation framework provided below. This simulation framework accepts as input a specification of a collection of processes. The framework then simulates the system calls and interrupts that an OS kernel would receive when executing the specified processes. The following sub-sections provide an overview of the simulation framework and outline what you must do to complete this project.

Downloading the Simulator

Compiling the Simulator

Running the Simulator

The Process Data Files

The Kernel Interface

The SystemTimer Class

The Assignment

Implement a Kernel class that performs round robin scheduling using the following policies:

Your simulation must also compute and display the following performance metrics when the simulation terminates: CPU Utilization, Throughput, Turnaround Time, Wait Time, Waiting Time and Response Time. For each of these metrics, use the definition given in the lecture slides, not the textbook.

Helpful Hint

To help with testing and debugging your scheduling strategies the simulator is capable of generating additional debugging output. To turn on this additional output set the debug variable to true in the SystemTimer class. When debug is set to true the simulator will display messages indicating what is happening at each time step of the simulation. These messages can be quite helpful in determining if your scheduling algorithm is working correctly.

Turning in Your Solution

Submit your solution by giving me your class that implements round robin scheduling, and your new version of ProcessControlBlock.java (if you changed it). Please submit both a hard copy and an electronic copy by e-mail.

Acknowledgment: this content is essentially identical to that developed by Professor Grant Braught for the Spring 2006 Operating Systems course, and I'm grateful for his permission to use it.