Assignments
Assignment 1: 6 hours over 7 days
Download assignment. In this assignment you will set up the repository, compile the distributed code base.
- Learning outcomes:
- Learn how to use git.
- Low to build and compile OS161.
- Navigate and read the source code with the goal of answering questions about how it works.
- Learn using the gdb debugger.
Assignment 2: 20 hours over 10 days
Download assignment. In this assignment you will implement basic synchronization primitives.
- Learning outcomes:
- Read about and understand how the hardware implements atomic instructions and their impact on software.
- Implement blocking locks and condition variables in OS161 based on existing implementation of mutexes and semaphores.
Assignment 3: 10 hours over 7 days
Download assignment. In this assignment you will solve a toy synchronization problem that involves using synchronization primitives in OS161.
- Learning outcomes:
- Understand how to enforce mutual exclusion and thread-to-thread signaling using the synchronization primitives implemented in A2.
Assignment 4: 40 hours over 14 days
Download assignment. In this assignment you will implement file-related system calls.
- Learning outcomes:
- Implement several new system calls in OS161.
- Understand how to safely transport the arguments (copy in/out) between the user land and the kernel.
- Implement new data structures in the kernel to support the new file-related system calls: open, close, read, write, lseek, chdir.
- Learn about and use the virtual file system interface.
Assignment 5: 60 hours over 21 days
Download assignment. In this assignment you will implement fork/exec system calls
- Learning outcomes:
- Implement fork and exec system calls in OS161.
- Learn about the process abstraction and Unix and mechanisms of new process creation.
- Learn about enforcing protection and safety in a multiprocess operating system.
Assignment 6: 80 hours over 25 days
Download assignment. In this assignment you will implement the virtual memory system.
- Learning outcomes:
- Learn about the functions, benefits and costs of virtual memory.
- Understand the hardware and software mechanisms needed to implement it.
- Implement full virtual memory support in OS161, including the handling of TLB faults, data structures for virtual address spaces, page tables and paging.