Department of Computer Science and Technology

Course pages 2019–20

Concurrent and Distributed Systems

Concurrency

Lectures

  • Lecture 1: Slides PDF.

  • Lecture 2: Slides PDF

    Erratum: I mentioned in the lecture that the slide which shows two possible successors to a state for the bothways-coupled FSM product looked wrong, but this indeed arises owing to non-determinism intrinsic to asynchronous product. Also, the half-coupled asynchronous product plot was corrected in Jan 2020.

  • Lecture 3: Slides PDF.

  • Lecture 4: Slides PDF.

    Erratum: Ignore the assignment of initial values to condition variables since that makes no sense to me.

  • Lecture 5: Slides PDF.

    Errata: The slide said to change the order of signals to avoid philosopher deadlock, but I have changed this to the order of waits.
    Also I have now changed some the slide titles in Lecture 5 since I found them a bit misleading when I delivered the lecture.
    Also, slide 9, the green box at the bottom right corrected from T3 to T2.

  • Lecture 6: Slides PDF.

    Note: I have added two new FSM diagrams showing synchronous and asynchronous message passing.

  • Lecture 7: Slides PDF.

    Erratum: The slide labelled 'strict' has been relabelled 'stricter'. See comment in the Learners' Guide.

  • Lecture 8: Slides PDF.

Primary Resources

  • Learners' Guide: LINK (edited after each lecture).

  • Preliminary Exercises: Sheet 0.

  • Main Exercise Sheets: Sheet 1     Sheet 2.

  • Useful article on Java Concurrency Primitives: LINK.

  • Robert Watson's Java Concurrency Exercises: LINK.

  • Supervisors' Guide: See supervisors' area.

  • CBMC Model checker example demo: LINK (updated as we go).

Advanced Resources

For those with greater interest:


Distributed Systems

Lectures

Supervisions



Last year’s course materials are still available.

Instructions for lecturers: how to edit this page