Project 3 - Design Milestone

Design Milestone

For Project 3, we have included a design milestone. We ask that you submit a draft of your design as early as possible, but no later than by Thursday, Oct 26, 11:59pm.

For students in both sections: No late days can be used. The milestone does not give any credit per se, but not submitting the design milestone will lead to an automatic 15 point deduction, reducing the total number of points you can get in this project to 85.

Each group will submit one design.

We will return this milestone to you quickly so you can get feedback on your design and correct if necessary - however, do not wait for our feedback to start your implementation.

Before you start on this project, however, make sure you understand the requirements and the underlying abstractions you will have to deal with. In particular, make sure you understand the relationship between virtual pages, physical page frames, and the swap space. Make sure you understand what lazy loading of virtual pages means and what the semantics of mmap() is.

To successfully implement this project, you will need to design a number of data structures, listed and explained in 4.1.3 Resource Management Overview and the sections following it.

Requirements for Design Milestone

Your design should include your design for the following containers:

  1. Supplemental Page Table,
  2. Frame table,
  3. Swap table, and
  4. Table of file mappings
You should submit

a) the C declarations of all data structures you will be using in your design.
b) the C declarations of any global or static variables you intend to use.

Include a comment for each global variable, for each struct declaration, and include a comment for each struct field.

For each container, describe

a) how it is populated
b) how many elements it will contain
c) how it is accessed
d) how many copies of that container exist in the system
e) how it is destroyed, if applicable

For part c) with respect to your supplemental page table, specifically address how you find out what action needs to be taken based on the fault address when a page fault occurs.

Do not submit code, aside from the requested declarations. Do not submit descriptions of algorithms. All we want to see in this design milestone are your data structures. Your design should fit on two pages or less when printed. The required format is ASCII.