AI Summary
[DOCUMENT_TYPE: user_assignment]
**What This Document Is**
This document outlines the requirements for Project 2 in Carnegie Mellon University’s Operating System Design and Implementation (15-410) course. It serves as a kickoff for a substantial programming assignment focused on synchronization primitives within an operating system kernel.
**Why This Document Matters**
This project description is essential for students enrolled in 15-410 who are preparing to implement a thread library, including mutexes and condition variables. It’s used during the project planning and development phases, and understanding its contents is critical for achieving a good grade. The document is intended for students working in pairs.
**Common Limitations or Challenges**
This document is a high-level overview and does *not* provide detailed implementation guidance. It highlights the complexity of the task and warns students about potential pitfalls, such as conceptual misunderstandings that can lead to significant rework. It also doesn’t include the actual code for the thread library or tests.
**What This Document Provides**
The document includes:
* An outline of the project’s components (mutex, condition variable, thread library, supplemental routines, tests).
* Information about a debugging system call called `misbehave()` and its various modes.
* Guidance on debugging using `tidinfo` in Simics.
* A cautionary plea regarding the time commitment required and the importance of solid core implementations.
* A reminder about project scheduling and grading criteria.