Course pages 2013–14
Concurrent and Distributed Systems
Concurrent Systems (Michaelmas term)
There are eight handouts available for the first part of the course (Concurrent Systems):
- Concurrent Systems Lecture 1: Introduction to concurrency and threads [PDF, 2up]
- Concurrent Systems Lecture 2: Mutual exclusion and process synchronisation [PDF, 2up]
- Concurrent Systems Lecture 3: CCR, monitors, concurrency in practice [PDF, 2up]
- Concurrent Systems Lecture 4: Safety and liveness [PDF, 2up]
- Concurrent Systems Lecture 5: Concurrency without shared data; transactions [PDF, 2up]
- Concurrent Systems Lecture 6: Further transactions [PDF, 2up]
- Concurrent Systems Lecture 7: Crash recovery; lock-free programming; transactional memory [PDF, 2up]
- Concurrent Systems Lecture 8: Concurrent systems case study [PDF, 2up]
Note that handouts #1-#7 were updated to reflect minor corrections on 23
Handout #8 was posted on 23 October 2013.
Further minor corrections were issued for handout #7 on 25 October 2013.
Supervision questions 1 were updated on 24 October to add a
new question "0" on sempahores.
The second set of concurrent-systems supervision questions (on tranactions) were pasted on 1 November 2013.
A correction was issued on 7 November for the second set of concurrent-systems supervision questions: 1(d) has been fixed to refer to "B.credit()" rather than "A.debit()", and T1/T2 have been swapped.
- 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)
Distributed Systems slides will follow in the spring.
- Distributed systems sample supervision questions 1 (courtesy Alastair Beresford)
- Distributed systems sample supervision questions 2 (courtesy Alastair Beresford)
Last year’s course materials are still available.