Computer Laboratory

Course pages 2014–15

Concurrent and Distributed Systems

Concurrent Systems (Michaelmas term 2014)

Jean Bacon's notes for 7 lectures of the course are below.
Robert Watson will present the FreeBSD case study sometime during the course. The notes for this are 2013 Lecture 8.

  • Lecture 1: Introduction to concurrency and threads [PDF, 2up]
  • Lecture 2: Shared memory concurrency control - low level [PDF, 2up]
  • Lecture 3: Shared memory concurrency control - high-level languages [PDF, 2up]
  • Additional material on shared memory concurrency control: lock-free programming [PDF, 2up]
  • Lecture 4: Cross address-space interprocess communication [PDF, 2up]
  • Lecture 5: Liveness and Deadlocks [PDF, 2up]
  • Lecture 6: Transactions [PDF, 2up]
  • Lecture 7: Transactions: Concurrency control and recovery [PDF, 2up]
  • Lecture 8: Case study FreeBSD, given by Dr Robert Watson [PDF, 2up]

Robert Watson's notes from 2013 are below.
Please browse them for another presentation of the same material, including much more Java syntax.

  • 2013 Lecture 1: Introduction to concurrency and threads [PDF, 2up]
  • 2013 Lecture 2: Mutual exclusion and process synchronisation [PDF, 2up]
  • 2013 Lecture 3: CCR, monitors, concurrency in practice [PDF, 2up]
  • 2013 Lecture 4: Safety and liveness [PDF, 2up]
  • 2013 Lecture 5: Concurrency without shared data; transactions [PDF, 2up]
  • 2013 Lecture 6: Further transactions [PDF, 2up]
  • 2013 Lecture 7: Crash recovery; lock-free programming; transactional memory [PDF, 2up]
  • 2013 Lecture 8: Concurrent systems case study [PDF, 2up]
    This will be given by Dr Watson during the 2014 course.

Supervision material and notes from 2013

Many of the ideas in concurrent systems can feel quite abstract in the absence of real-world experience; more glibly put, you can't understand a race condition without having debugged one! An introduction to concurrency primitives in Java, as well as several practical exercises, can be found here:

These may be a useful supplement to more theoretical supervision questions.

Distributed Systems (Lent term 2015)

Lecture notes from Distributed systems to start arriving soon.

  • Lecture 1: Instroduction to distributed systems; RPC [PDF]
  • Lecture 2: Network File System and Object-Oriented Middleware [PDF]
  • Lecture 3: Practical RPC systems; clocks [PDF]
  • Lecture 4: Clock synchronisation; logical clocks [PDF]
  • Lecture 5: Consistent cuts, process groups, and mutual exclusion [PDF]
  • Lecture 6: Elections, consensus, and distributed transactions [PDF]
  • Lecture 7: Replication in distributed systems, CAP, and a few case studies [PDF]
  • Lecture 8: PubSub; Security; NASD/AFS/Coda [PDF]

Supervision material

Instructions for lecturers: how to edit this page