CS 134

Lesson 1

Our Goals for this Lesson

Last week, we examined two synchronization primitive—semaphores and locks & condition variables—and then looked at some issues that can arise when these synchronization primitives are used in practice, such as starvation and deadlock. We also looked at some more complex synchronization mechanisms, such as reader–writer locks.

In this lesson, we'll first return to spinlocks from the week before, and ask ourselves how they're really implemented at the processor level. And from there we'll see a path to avoiding locks altogether in some cases.

Outline

To receive credit: complete all pages above, then this page will be complete as well (and get a green check emoji at the bottom right of the page).

(When logged in, completion status appears here.)