Class 21: Bakers and Philosophers

Posted: Tue 15 April 2014

Project Design Meetings are this week. Your team should come to the design meeting prepared to explain what you are doing for your project and why, what you have done so far, your plan for finishing, and any questions you have.

Your team should submit a Project Submission Option by Monday, 21 April (4:59pm). But, the earlier you submit the more likely you are to receive your first choice.

Readings

The recommended text has a full chapter on Concurrency, including:

Concurrency and Threads
Thread API
Locks
Lock-based Concurrent Data Structures
Condition Variables
Semaphores
Common Concurrency Problems
Event-based Concurrency

These sections cover some of the topics we covered in class, as well as many other relevant and interesting topics. Because they use C with the pthread library, some of the specifics are quite different from Rust programming but the main ideas are the same (and Sarah and Robert are working on rewriting some of them for their project).

The main topic of the next class will be OS design focusing on microkernels and beyond. Much of the material will be based on this paper: Kevin Elphinstone and Gernot Heiser, From L3 to seL4: What Have We Learnt in 20 Years of L4 Microkernels?, SOSP 2013.

Mutual Exclusion

Why is it worthwhile to study mutual exclusion protocols?

Why is it a waste of time to study mutual exclusion protocols?

How hard it is to invent a protocol that provides mutual exclusion without liveness guarantees?

How does Dijkstra prove mutual exclusion?

What assumption does Lamport's solution give up that Dijkstra's solution relies on?

comments powered by Disqus