Project 1: Thread

In this assignment, we give you a minimally functional thread system. Your job is to extend the functionality of this system to gain a better understanding of synchronization problems.

  • You will be working primarily in the threads/ directory for this assignment, with some work in the devices/ directory on the side. Compilation should be done in the threads/ directory.
  • Compilation should be done in the threads/ directory.

Before diving into the project description, here are some useful resources to guide you:

Additionally, the material from A.1 Loading to A.5 Memory Allocation in the Appendix will be invaluable, especially the section on Synchronization. Many of your questions, such as how Pintos implements its locks, can be answered in these documents. I recommend skimming through the documentation initially and referring back to it as needed when you encounter specific issues.

To complete the execise 3, you will also need to read 4.4BSD Scheduler.

Here are the sections in this chapter:

Acknowledgment

Part of this project’s description and exercise is borrowed from the JHU CS318.