CS 111<!-- --> Projects

Projects

For additional information related to sections and projects, click on the Sections tab above.

Project 1: Shell

Use kernel calls such as fork, exec, and pipe to instantiate subprocesses and implement I/O redirection and pipelines.
Project details
Due: Thursday, April 8, 2021 at 11:59 PM

Project 2: Thread Dispatcher

Implement a simple threading library with a preemptive dispatcher.
Project details
Due: Thursday, April 15, 2021 at 11:59 PM

Project 3: Synchronization

Solve synchronization problems using C++ locks and condition variables.
Project details
Due: Thursday, April 22, 2021 at 11:59 PM

Project 4: Implementing Locks and Condition Variables

Add synchronization primitives to your threading library from Project 3.
Project details
Due: Thursday, April 29, 2021 at 11:59 PM

Project 5: Memory-Mapped Encrypted Files

Write a page fault handler to load data from encrypted files into memory on-demand (and decrypt it on the way).
Project details
Due: Thursday, May 13, 2021 at 11:59 PM

Project 6: Page Replacement with the Clock Algorithm

Add page replacement to your solution to Project 5, so that only the most recently accessed pages consume memory.
Project details
Due: Thursday, May 20, 2021 at 11:59 PM

Project 7: Unix V6 File System

Implement a mechanism to read file data from a "disk" in the Unix V6 file system format.
Project details
Due: Wednesday, May 26, 2021 at 11:59 PM

Project 8: Journaling File System

Implement log replay during crash recovery for a file system that uses write-ahead logging.
Project details
Due: Thursday, June 3, 2021 at 11:59 PM