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 thedevices/
directory on the side. Compilation should be done in thethreads/
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.