Computer Science 354
Operating Systems

Dickinson College
Spring Semester 2002
Grant Braught

Project #3 - Scheduler Performance Comparison

Introduction

Simulation is a powerful tool that can be employed when designing and selecting scheduling algorithms for an operating system. In this project you will implement and perform simulations to compare the scheduling algorithms from two popular flavors of unix: Linux and BSD Unix 4.4.

Assignment

Compare the performance of the credit based time sharing algorithm used by Linux to schedule processes in its OTHER queue to the multilevel feedback queue algorithm used by BSD unix 4.4. Implement these algorithms so that they work as they were described in class.

You will complete this project in 4 phases:

  1. Project Proposal (10% Due: 4/4/02)
  2. Simulation Development (30%)
  3. Paper Submission (20% Due: 4/23/02)
  4. Paper Revisions (40% Due: 5/2/02)

More details on each of these phases is provided below.

Project Proposal

Your project proposal must describe and justify the simulations you intend to perform and metrics you intend to use to make performance comparisons between the Linux and BSD schedulers. Be sure to include experiments and metrics that compare how these schedulers behave for collections of I/O bound processes, collections of CPU bound processes and various mixes of CPU and I/O bound processes. You should also consider process mixes designed to evoke the best and worst performance from each of the algorithms. I anticipate that good proposals will be 1 to 2 double spaced, type written pages. I will read and return your proposals with comments that you should ultimately integrate into your project. If necessary you may be asked to revise and resubmit your project proposal.

Simulation Development

You will be implementing the Linux and BSD schedulers 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.

Downloading the Simulator

Compiling the Simulator

Running the Simulator

The Process Data Files

The Kernel Class

The SystemTimer Class

Paper Submissions

The paper for this project will be in the form of a scientific journal article. Your paper should be divided into 5 sections as follows:

1. Introduction
The introduction of your paper should present and discuss the question that is being investigated. Give the reader sufficient information to understand what it is you are investigating and why it is worth investigating.

2. Background
This section should contain a description of the Linux and BSD schedulers and the metrics you will be using for evaluation. Your description of the schedulers should describe the anticipated strengths and weaknesses of each scheduler (e.g. the types of processes they favor, etc...). Your descriptions of the metrics should include a discussion of the types of processes/systems to which they are most applicable. You should break this section into sub-sections as appropriate.

3. Methods
In this section you will describe the general structure of the experiments that you have conducted. I suggest one sub-section for each unique experiment. In each sub-section, clearly explain the purpose of the experiment and outline the types and numbers of processes used and specify the metrics that will be used for evaluation. It is not necessary to give an exact specification of the processes in this section.

4. Results
In this section you will give very specific information about the types and numbers of processes that you have used and provide values for the statistics that were collected and the metrics that were calculated. Based on this section and the previous section, a sufficiently knowledgeable reader should be able to reproduce your results. As with section 3, one sub-section for each experiment would make good sense here.

5. Discussion
In this section you will summarize your results and draw conclusions about the schedulers. You should focus on conclusions that integrate the results from multiple experiments. Also, discuss any inconclusive results as well as any strange or unexplained results. You should also discuss any possibilities for further work that would help to make your results more conclusive or would help to clarify inconclusive, strange or unexplained results.

If you would like to see an example of a paper in this format, here is a paper that I have written: "Investigating Chaos as a Source of Innovation in a Simple Model of a Co-Evolutionary System" in pdf format.

Paper Revisions

Details of the revisions that are necessary will be provided when the draft of your paper is returned.