We provide you a suggested order of implementation as well as the specifications for each checkpoint based on our and past students’ experiences. However, this is merely a suggestion and you may elect to approach the project entirely differently.
Keep in mind that checkpoints are not graded.
Start the project by implementing the
write syscall for the
STDOUT file descriptor. Once you’ve done this, the
stack-align-1 test should pass, assuming you build on the code you have at the end of Project Pregame.
practice syscall and the Argument Passing task.
Finally, make sure that the
exit(-1) message is printed even if a process exits due to a fault. Currently the exit code is printed (see line 26 of
/pintos/src/userprog/syscall.c) when the exit syscall is made from userspace, but not if it the process exits due to an invalid memory access.
After this checkpoint, you should be passing the
Building off of Checkpoint 1, complete the remaining Process Control Syscalls and File Operation Syscalls.
After this checkpoint, you should be passing all tests except for
kernel/fp-*. If you’re not passing the
no-vm/multi-oom test, feel free to skip it for now. It is a harder test to debug that can often only be done by examining your code, so you should return to it after you’ve implemented all the other functionalities.
Finish the project with Floating Point Operations. Make sure to fix the
multi-oom test if you skipped that during Checkpoint 2. You should be passing all tests.