CS111 Assignment 5: Dispatching and Implementing Locks/CVs
In this assignment you will implement a simple threading mechanism in C++ and use that to implement your own version of locks and condition variables. Normally, threads are implemented in the operating system, but for this assignment you will implement them inside a user-level application. Your thread dispatcher will run in a single system thread, which is what you get when a new process starts or when you create a std::thread object. Your dispatcher will use that system thread to create and run any number of user-level threads. These user-level threads will have all the features of system threads (each has its own stack, they can be scheduled independently, and you will implement locks and condition variables for them), but the operating system doesn't know about them: it only knows about the one system thread. Your code to implement user-level threads will be very similar to the code that implements system threads in an operating system running on a single core. The goal of this proj
CS111 Assignment 5: Dispatching and Implementing Locks/CVs Assignment 5: Dispatching and Implementing Locks/CVs NOTE: this website is out of date. This is the course web site from a past quarter. If you are a current student taking the course, you should visit the current class web site instead. If the current website is not yet visible by going to cs111.stanford.edu, it may be accessible by visiting this link until the new page is mounted at this address. Please be advised that courses' policies change with each new quarter and instructor, and any information on this out-of-date page may not
Explore this link on the map →related reading
- CS111 Assignment 5: Dispatching and Implementing Locks/CVsweb.stanford.edu
- Three Ways For C++ Thread Synchronization in C++11 and C++14 | Chrizogchrizog.com
- C++11 Memory Modelpeople.cs.pitt.edu
- LittleBookOfSemaphores.pdfgreenteapress.com
- Unreliable Guide To Locking — The Linux Kernel documentationdocs.kernel.org
- Implementation requirements | CS 162 Project 2cs162.org
- CS111 Assignment 4: Synchronization and Trustweb.stanford.edu
- CS111 Assignment 4: Synchronization and Trustweb.stanford.edu
- Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is | Probably Danceprobablydance.com
- Locking in WebKit | WebKitwebkit.org
- Spinlocks Considered Harmfulmatklad.github.io
- CS111 assign5 C++ Guideweb.stanford.edu