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