Lecture Week 4: Concurrency and Synchronization

Course Meetup: Tuesday, Feb. 16

The next course meetup at on Tuesday, Feb. 16 at 2:00pm on Zoom. We will use the same Zoom link for all course meetups (you can find it in Compass 2g as the announcement for this course).

Note: COVID-19 Spring Break Replacement Day Off

This Wednesday (Feb. 17) is the first of three COVID-19 “Spring Break Replacement Day Off”. Since CS 423 does not have any scheduled activities on Wednesdays, this will not impact the course.

That said, the final “Spring Break Replacement Day Off” is on Tuesday, April 13. Since Tuesday is a regular lecture day, we will observe the week of April 12 - April 16 as our “Spring Break Replacement” for CS 423. Yay!!

Lecture Topics and Videos

This week is the first of two weeks that we’ll focus on concurrency and synchronization. The topics come from both lecture videos and reading from the course textbook:

  1. Lecture Video - Concurrency
  2. Lecture Video - Thread Example
  3. Reading - Concurrency, An Introduction (Ch. 26)
  4. Reading - Interlude, Thread API (Ch. 27)
  5. Lecture Video - Synchronization
  6. Lecture Video - Synchronization Solutions
  7. Lecture Video - Locks
  8. Reading - Locks (Ch. 28)
  9. Reading - Lock-based Concurrent Data Structures (Ch. 29)
  10. Lecture Video - Conditional Variables
  11. Lecture Video - Conditional Variables - MESA vs. Hoare
  12. Reading - Lock-based Concurrent Data Structures (Ch. 30)
  13. Meetup Recording - Course Meetup Zoom Recording

Additionally, here’s a PDF of all the lecture slides presented in the videos this week.

Assignments

MPs

Reading Selection from Systems Research (Required for 4CR only)

If you are enrolled in the 4CR version of this course, you will review two papers each week and choose one to summarize in depth. See the course syllabus for details. Note: You may need to be on the campus VPN to get access to the paper from the ACM.

  1. “Scheduler activations: effective kernel support for the user-level management of parallelism” by Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, Henry M. Levy; published in ACM’s Symposium on Operating Systems Principles (SOSP) 1991.
  2. “Finding and reproducing Heisenbugs in concurrent programs” by Madanlal Musuvathi, Shaz Qadeer, Thomas Ball, Gerard Basler, Piramanayagam Arumuga Nainar, and Iulian Neamtiu; published in USENIX Conference on Operating Systems Design and Implementation (OSDI) 2008.

Your summary is due on Compass 2g by 11:59pm on Monday, Feb. 22.