Concurrent and Distributed Systems
Concurrent Systems
Primary Materials
- Lecture Notes PDF-C.
- (Lecture notes as printed at start of term PDF-A).
- Learners' Guide: LINK
- Transcripts of a previous year's lectures:
L1.txt,
L2.txt,
L3.txt,
L4.txt,
L5.txt,
L6-A.txt,
L6-B.txt,
L7.txt,
L8-A.txt,
L8-B.txt.
Note: Transactional memory was not lectured this year, but the course summary transcript slide at the end of L8-B remains relevant.
Supervision Examples Sheets
Secondary Materials
For those with greater interest:
- Demo from Lecture 1 (also in sheet CS0) l1-interleaving-demo.zip
- Dr Watson's useful notes on Java concurrency with some practical exercises TXT.
-
For non-examinable details regarding interrupts
and intercore interrupts, look at sections 2.5 and 2.7.8 of
Modern System-on-Chip Design on Arm by DJ Greaves. - Two nice diagrams (thanks to Jasmin Jahic) that might be handy for supervision discussion: and
- Detailed example of interrupt service routine: sp1-socparts.
- Are SSD disk writes really atomic?.
- Sources for real-world implementation of pthreads and condition variables condition variables.
- Deadlock detection in AND-OR wait-for graphs: there are countless papers giving algorithms of varying conservativeness and run time. eg "Graph-Theoretic Characterization of ANDOR Deadlocks" V. C. Barbosay and M. R. F. Benevidesy, 1998.
- Multicore CPUs without shared memory and with message passing hardware are marketed by companies such as XMOS.
- Free BSD WITNESS: LINK.
Distributed Systems
8 Lectures from Dr Tim Harris.
- Lecture notes (PDF) (including exercises)
- Slides: slideshow and printable (PDF)
Last year’s course materials are still available.