Empirical Lab Repository

Title: CPU Simulator, Part 1

Author: Dave Reed, Creighton University, davereed@creighton.edu

Possible Courses: Operating Systems

Empirical Concepts Introduced: simulation, system modeling

Computer Science Concepts Used: CPU scheduling, batch processing, timesharing, system performance (average turnaround, average wait time)

Summary: This assignment involves experimentation with a model of a CPU job scheduler, which can simulate either a batch or timesharing environment. The student is given a working simulator (written in C++), with parameters for the time slice length and load delay. By setting the time slice to be large, the student can model a batch processing system. By setting the time slice to be small, timesharing can be modeled.

The student is asked to perform several simulations, and then augment the program to maintain statistics on system performance. Questions encourage the student to form hypotheses about the behavior of the system under different operating conditions, and then verify their hypotheses using the simulator.