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
- Concurrent systems supervision questions 1: Semaphores, generalised producer-consumer, and priorities
- Concurrent systems supervision questions 2: Transactions
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]
- Distributed systems sample supervision question s 1 (courtesy Alastair Beresford)
- Distributed systems sample supervision question s 2 (courtesy Alastair Beresford)