Skip to content
ynasser edited this page Apr 27, 2014 · 4 revisions

This week: Concurrency!

Moderator notes

  • Time Is of the Essence --- should 'Is' be capitalized?
  • 3.4.1: there's another choice: simultaneity is relative
  • pre-3.38: but it does depend on each process not getting too far ahead of its neighbors (async life)
  • 412: ternary numbers?
  • dining philosophers
  • live lock
  • last paragraph amazing and apropos

Recap

Great meeting! We talked about the programming language theory of relativity, the actual theory of relativity, concurrency models like CSP and the actor model and how those give you leverage over concurrency issues by allowing you to reason effectively about communication within your program, and limiting that communication to reasonable channels (no spooky action at a distance).

We built a semaphore out of a list of mutexes and a queue, and then built another out of test_and_set! style atomic primitives. We played with synchronizers and experienced the combinatorial explosion of mutable state + pre-emptive scheduling. We talked at length about solutions to the dining philosophers problem (a waiter, a golden chopstick, numbered forks) and a bit about the cigarette smokers problem and live lock.

Links

From before:

Clone this wiki locally