Symbol * indicates hard homeworks (i.e., you can still expect something similar in an exam). Symbols ** and *** indicate really hard, extremely hard homeworks (I will not put something similar in an exam), you should try to solve them just for fun. Homeworks are not graded.
This year 2026/2027 the streaming and recording of lectures is not granted. The regulations of Sapienza explicitly say that lectures are physical and must be done in presence. To help students that work I made available at this link the recording of the lectures of the year 2021/2022.
Material to read: Main Book (1, 2.1 and 2.2. 2.4.1-2.4.2), H. Attiya, J.L. Welch. 2004 (2.1).
Key concepts: System Model, Processes, Uniqueness of the identifies, Local View, Delivery event vs Message creation, Asynchronous System, indistinguishability of the views. Fairness of a scheduler.
Model 2: Failures (slides)
Links and Abstractions: Safety and Liveness. Fair-Lossy (slides)
Links: Stubborn, Perfect and FIFO LINK (slides)
Material to read: Main Book (1, 2.1 and 2.2. 2.4.1-2.4.2), H. Attiya, J.L. Welch. 2004 (2.1).
Key concepts: Failures: Crash Stop vs Byzantine, Abstraction and properties; Safety and Liveness. The Fair-Lossy Link, The Stubborn and The Perfect link
FIFO LINK (slides)
Material to read: H. Attiya, J.L. Welch. 2004 (2.1). Time 1 is in the Main book (2.5); Topics of Time 1.2-1.3 can be found on Maarten van Steen et al. 2008 (Chapter 6.1 - the book is free)
Key concepts: Synchronous and Eventually-synchronous systems, physical clock drift, Internal and External synchronization, Christian and Berkley, NTP (for us it is just a hierarchy of servers that use christian-like approach), Local Skew vs Global Skew.
Optional reads: A detailed description of Berkley is here;