Your final milestone is to complete the documentation of your system. The main aim of your documentation is to enable somebody outside your group to understand the design of your system. For example, the design document should be enough to understand whether your particular system is one of the better solutions outlined in earlier milestones, or even better.
You should describe your system call interface, key internal data structures, and key algorithms/approaches such that it is clear what your design choices are in the set of possible design choices, and how those design choices relate to limitations, assumptions, behaviour, or advantages of your system.
Detailed code documentation is not required outside normal inline code commenting in your source. More specially, the design document is focused on the design, not a hardcopy listing of code comments. The design document is also self-contained, and should not require the source code (or it's comments) to comprehend.
Be sure to point out any known limitations in your system, or any important assumptions you have made.
At the very least you should document:
- execution model,
- page-table structure,
- demand-paging,
- system call dispatching,
- I/O subsystem, and
- process management.
If you completed any bonus features be sure to document them as well.
You also have a chance to clean up your codebase, so that it's readable by someone other than you and to ensure that the project requirements have been met:
- Functional timestamp and sleep system calls; timestamp should be accurate to 1ms,
- Functional file system system calls,
- Support for at least 16 concurrent processes with at least 16MB of stack and at least 16MB of heap space each,
- Capable of supporting applications with memory limited to 8MB of free frames,
- A page file at least 10x the size of memory,
We encourage you to not diverge from the standard build. However, you
may also include a plain text document TESTING.txt
that
provides any special instructions for building and running your OS.
If additional tools should be installed, please also include
instructions for obtaining and installing these tools.
Be sure to test that your project builds and runs correctly in the environment provided by CSE before submission.
Hints
- Use LaTeX.
- Use diagrams.
- Use a spell-checker.
- Read Gernot's style guide.
Submission
For this milestone you are required to submit your documentation in pdf form, as well as your entire code base, as described in the project outline.