[CSE]  Advanced Operating Systems 
 COMP9242 2003/S2 

PRINTER Printer-Friendly Version
- Notices
- Course Intro
- Consultations
- Survey Results
- Lectures
- Selected Papers
- Milestone 0
- Project Spec
  (Milestones 1, 2, ...)
- Project FAQ
- Exam
- ASysT Lab
- L4Ka::Pistachio FAQ
# L4 source browser
- Sulima ISA Simulator
R4x00 ISA Summary 
MIPS R4700 ReferenceMIPS R4000 User Manual 
- GT64111
# Network Driver
Related Info
- Aurema OS Prize
- OS Hall of Fame
- 2002
- 2000
- 1999
- 1998
- Gernot Heiser (LiC)
- Kevin Elphinstone
- Guest Lecturers (TBA)
- Student Reps

Valid HTML 4.0!

M6: Demand paging

In this milestone you need to implement paging of memory. This should build on the earlier milestone where you implemented a pager. The backing store for your paging system will be an NFS file called swap. You should implement a second-chance page-replacement algorithm.

This is probably the most challenging milestone in the project, and because of this you are given two weeks to complete this milestone. (In addition you also have the mid-session break, so you should have three weeks all up.) This should also give you a chance to complete any other outstanding milestones and get your documentation up to date. If you finish early, use the opportunity to get ahead by tackling the next milestone!

Design issues

The MIPS does not feature hardware-maintained reference and dirty bits, which means you'll need to work out how to do this in software.

Most of the design in this section will come down to the appropriate choice of data structures. If you haven't already done so, you will need to work out you page table structure. Note that it should support a 64-bit virtual address space. You will also need to decide how to keep track of frames in your swap file. You may want to keep things simple at first be only concentrating on one process, however you should be aware that the next milestone will require you to handle multiple processes.


To demonstrate that your code is indeed using the paging system you should artificially reduce the number of free frames, and run some code that uses more frames than are available.

You may want to write a command called thrash which writes data to a given number of pages and then reads it back (verifying that it has been read back correctly).

Last modified: 10 Sep 2003.