Distributed Systems, drawn out
The whole subject in eleven Parts, taught through diagrams. Every idea is explained from scratch, every protocol is stepped through message by message, and every practice-exam question is worked to a full answer. You don't need the lectures, the tutorials or the study guide to follow it.
- Explainwhat makes a distributed system hard: no shared memory, no global clock, independent failures
- Tracehow processes communicate, from sockets up to RMI and publish-subscribe
- Describethe services built on top: file systems, naming, and security protocols
- Answerevery question type on the paper, including the 10-mark Java RMI program
What a distributed system is
A distributed system is a set of computers that work together on one task or service, but have no memory in common. The textbook for this subject, Coulouris, Dollimore, Kindberg and Blair's Distributed Systems: Concepts and Design (called CDK after its authors), defines it as a system whose components, located at networked computers, communicate and coordinate their actions only by passing messages. The word only is the heart of the subject: one machine cannot look into another's memory, so everything one part knows about another arrives as a message, late, and possibly not at all.
A second definition, by Andrew Tanenbaum, looks at the same thing from the user's side: a distributed system is a collection of independent computers that appears to its users as a single computer. When you use a web search engine you talk to thousands of machines, yet it feels like one service. Making many machines look like one is called transparency, and much of the subject is about how it is achieved and where it breaks down.
Three consequences follow from "only by passing messages", and every later topic is a response to one or more of them. Keep them in mind; they explain why each mechanism in this subject looks the way it does.
Concurrency
Many programs run at the same time on different machines and share resources, such as a file or a bank account. Their actions can interleave in any order, so shared resources need coordination (Part IV).No global clock
Each machine has its own clock and they drift apart. The only way to coordinate is by messages, which take an unpredictable time, so no process can know exactly what time it is "everywhere" (Part II).The map below is the whole subject on one page. It appears at the top of every Part, with that Part highlighted, so you always know where you are.
A distributed system is many computers cooperating only by messages, ideally looking to the user like one. That gives concurrency, no global clock and independent failures, and the rest of the subject is the toolkit for living with those three facts.
The exam and where the marks are
The final exam is on Tuesday 10 November 2026 at 8:30 AM, on campus and on paper: 15 minutes of reading time, then 3 hours of writing. It is closed book with no calculator. It is worth 60% of the subject and has a hurdle: you must score at least 30 of its 60 marks to pass the subject, whatever your assignment marks. The paper has 11 questions. Ten are worth 5 marks each (the first of these is ten multiple-choice items at half a mark each), and one is a 10-mark coding question, which in the official practice exam is a complete Java RMI client and server.
| Practice-exam question | Marks | Taught in |
|---|---|---|
| Q1 Ten multiple-choice items, each turning on one precise distinction | 10 × 0.5 | All Parts; worked in Part XI |
| Q2 Distribution transparency applied to a digital library | 5 | Part I |
| Q3 TCP vs UDP: connection set-up, ordering and loss, flow control | 5 | Part III |
| Q4 Define at-most-once, at-least-once, remote interface, stub, registry | 5 | Part VI |
| Q5 Microkernel architecture and extensibility | 5 | Part V |
| Q6 Draw the file service architecture | 5 | Part VIII |
| Q7 Space and time uncoupling in publish-subscribe | 5 | Part VII |
| Q8 DNS caching with a time-to-live | 5 | Part IX |
| Q9 Checking identity with a ticket, and the attack it allows | 5 | Part X |
| Q10 Digital signatures and certificate chains | 5 | Part X |
| Q11 A Java RMI dictionary service: client and server | 10 | Part VI |
Both lecture and tutorial content is examinable, so the official tutorial answers on this site are study material, not just practice. Staff will not release solutions to the practice exam, so the answers in Part XI are worked answers written for this site. The guest lectures and the advanced topics (content delivery networks, cloud, blockchain, the Internet of Things) are not examinable.
How the topics fit together
The eleven Parts fall into four bands, as the map shows. Foundations (Parts I and II) give you the vocabulary: what the challenges are, and the models used to reason about architecture, timing, failure and security. Communication (Parts III, VI and VII) climbs from raw sockets, through remote calls that look like local ones, to indirect schemes where sender and receiver need not even know each other. Inside a node (Parts IV and V) covers what each machine must provide for all this: threads to serve many clients at once, and an operating system that protects and supports them. Services (Parts VIII to X) are the big shared systems built on top: file systems, naming, and security.
One ordinary action touches almost every Part. Follow a single online purchase through the picture below.
- Naming. The app knows only the name shop.com. A DNS name server turns it into a machine address (Part IX).
- Sockets and TCP. The app opens a TCP connection to that address through a socket, a reliable stream of bytes (Part III).
- Threads. The server gives the request to one of its threads, so that thousands of shoppers can be served at once (Part IV).
- Operating system. The kernel underneath protects processes from each other and moves the bytes on and off the network (Part V).
- Remote invocation. To check stock, the server calls a method on an object that lives on another machine, as if it were local (Part VI).
- Indirect communication. It announces "order placed" to a broker, which passes it to whoever is interested, the warehouse and the email service, without the server knowing who they are (Part VII).
- Distributed file system. The invoice is saved to a remote file server that looks like a local disk (Part VIII).
- Security. The whole connection is encrypted and the shop's identity is checked with a certificate, using TLS (Part X).
Foundations give the vocabulary, communication moves the messages, each node supplies threads and an operating system, and the shared services are built on top. A single everyday action uses all of them.
How to read this site
Each Part opens with what you'll be able to do by the end, and a copy of the map. Sections build on each other, so read a Part in order the first time. Coloured boxes mark the kind of content, so you can skim for what you need later:
A term you need to be able to state precisely; the exam has a page of short definitions.
A rule or property, such as a kind of transparency or an invocation semantics.
Something that loses marks, usually shown next to the correct version.
How this topic is examined, and the method for answering.
A full answer to a past-exam, practice-exam or tutorial question.
An analogy or a plain-language way to think about it.
Step-through diagrams have Back and Next buttons. Use them to watch a protocol run one message at a time, with what each message carries and why it is sent written underneath. "Check yourself" questions hide their answers until you click; try each one honestly before you look. Where answers come from the official tutorial solutions, the site says so; where they are this site's own worked answers, it says that too.
If a symbol in a diagram puzzles you, the diagram key draws each kind of picture once with every element labelled, and the glossary defines every term with a link to where it is taught.
Characterization
What a distributed system is, why we build them, and the eight challenges, including transparency. Part IISystem Models
Physical and architectural models, then the interaction, failure and security models. Part IIIIPC & Sockets
TCP and UDP, Java sockets, marshalling, and multicast. Part IVThreads
Java threads, synchronisation, and the four multithreaded server architectures. Part VOS Support
The kernel, protection, and monolithic versus microkernel designs. Part VIRPC & RMI
Request-reply, invocation semantics, RMI's architecture, and a complete Java RMI program. Part VIIIndirect Communication
Groups, publish-subscribe, message queues, shared memory and tuple spaces. Part VIIIFile Systems
The file service architecture, Sun NFS and its caching, and AFS. Part IXName Services
Names and addresses, name resolution, and DNS. Part XSecurity
Threats, cryptography, signatures, certificates, Needham–Schroeder, Kerberos and TLS. Part XIThe Exam
Format, question types and technique, and the 2026 practice exam worked in full.Work through Parts I to X in order: each uses the vocabulary of the ones before. Then sit the practice exam in Part XI under timed conditions before reading its answers. Write the RMI program from memory, by hand, at least twice: it is a sixth of the paper, and code written on paper only comes out right with practice.