Assignment 4
In this assignment you will be implementing a set of file- and process-related system calls. When you have completed the first coding part of the assignment, your operating system will be able to run multiple copies of a single user-space program, and allow that program to perform basic file I/O. You will make OS/161 able to run real programs! Once you have completed the final coding parts of the assignment, you will also add the ability to run a variety of programs concurrently.
A substantial part of this assignment is understanding how OS/161 works and determining what code is required to implement the required functionality. Expect to spend at least as long browsing and digesting OS/161 code as actually writing and debugging your own code.
Deadlines
- Released: Tuesday, October 1
- Written Part Due: Sunday, October 6
- Design Document Due: Tuesday, October 8
- Preliminary Code Due: Tuesday, October 15
- Final Code Due: Tuesday, October 22
- Patch Peer Review Due: Sunday, October 27
I strongly recommend you implement at least half the code before the first deadline.
Allow time for testing. Your code may not work the first time.
Or the second time.
Or the third time.
I'll get the coffee going!!
Getting Started
Wait, before we start, who won the patch peer review for the last assignment?
Ah, yes…
Back to the assignment!
As usual, you'll need to decide who you're working with for this assignment, and then accept the assignment on GitHub Classroom. You can do that by clicking the link below:
We mentioned suggestions for your group naming convention in Homework 1; you can go back and check them out if you need a reminder—basically use your names. But please do not include the homework number in your group name. GitHub Classroom will automatically append the homework number to your repository name, and you don't need it twice.
Group Work Rules
The same rules about shared ownership of group work apply to this assignment, as described in the course syllabus and previous assignments.
Outline
First, get things set up:
Then, come up to speed on the relevant parts of the OS/161 codebase for this assignment:
These parts will help you figure out how much work you have to do, and give you things to let simmer in the back of your mind while you work on other parts of the assignment.
Now you get to write code.
After submission, we'll have a peer review process:
(When logged in, completion status appears here.)