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. (As a matter of fact, you do not even have to wait for the design milestone deadline to begin 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.
Your design should include your design for the following containers:
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.