CS 405  Fall 2000
Project 3
Virtual Memory and Linux

 
Assigned: Friday, November 3, 2000            Due: Monday, December 4, 2000

Overview

The assignment is to compare the performance of three page-replacement algorithms, running in a Linux environment.  You will compare the performance of the replacement algorithms on different types of programs and with different page-replacement parameters.  You will prepare a report that describes your methods and experiments, and that presents your conclusions based on the results of your experiments.  You will work in 3-person teams for this project.

Lab Environment

We will be using the Special Projects lab and each team will be assigned their own computer.  The computers are currently running Windows 98.  Thus, you will have to create a new partition and then load Red Hat Linux 6.2 on your computer.

Algorithms

The three page-replacement algorithms that you should compare are the default Linux algorithm, a Random-page-choice algorithm, and the WSClock algorithm.

Working with and Modifying Linux

In order to make changes to the page-replacement scheme in Linux, you will have to edit and then rebuild the Linux kernel.  The How-To document provides information about how to build the kernel.  Also, at this end of this sheet, a number of links to Linux resources are provided.
 
Remeber, you will be working as root when you are making these changes.  And  root can do many bad things to the system, even when you're trying to be very careful.  So, tread lighltly and make back-ups!!

Linux is normally rebooted/shutdown NOT by using the power button, but by running the /sbin/shutdown program. The
superuser types "/sbin/shutdown -h now" for immediate shutdown or /sbin/reboot to reboot (to become superuser
you can either login as root or type in 'su' (SuperUser) which will ask you for the root password and make you effectively
root).  If you DONT shut down the computer properly you might end up with inconsistent file systems... this means only one thing: problems.

Comparing the Algorithms

You should approach this portion of the assignment as you would approach a laboratory assignment in a physics course, using the scientific method. You should form some hypotheses before you start experimenting and use the experiments to confirm or reject these hypotheses based on observed results. Give careful thought to the correct choice of parameters for the programs. Try a few trial runs with various parameters, print out the results, and go home and think about the results.  These preliminary results should help you decide on better parameters for a second round of trials. Remember: It's not the quantity but the quality of data that dictates the quality of the experiments.

Report

You are to prepare a report describing the results of your experiments. Again, approach this report as you would approach a physics laboratory experiment report. You should carefully describe what experiments you did and what the results showed you about the different page replacement policies. I want to see a correlation between the experiments you run and the conclusions you draw. You must supply quantitative data to support your conclusions. The report should be not more than three typewritten pages, excluding tables, graphs, etc.

Grading

You grade will be determined as follows:

     50% - Report (experiments, conclusions, presentation)
     50% - Implementation (correctness, style, documentation)

Handing In

A hardcopy of your report and all code modules that you modified should be turned in, on or before the deadline.  In addition, you will be giving me weekly progress-reports and have a demo meeting with me at the end of the project.
 

Linux-related Information