COMP90015 · Semester 2, 2026

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
0.1

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.

A COMPUTER NETWORK 10.0.0.1 10.0.0.2 10.0.0.3 every machine is visible and addressed explicitly
A network exposes its computers. You pick which machine to talk to by its address. The network's job ends at delivering packets.
A DISTRIBUTED SYSTEM one service: "the library catalogue" the machines are hidden behind one service
A distributed system hides them. It is built on top of a network, but the user sees one service and does not know, or care, how many machines provide it.

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.

Consequence 1

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).
Consequence 2

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).
Consequence 3

Independent failures

One machine can crash, or one network link can break, while the rest carry on. A silent machine might be dead, slow, or cut off, and the others cannot tell which (Part II, VI).

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.

In short

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.

0.2

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.

Official 2026 practice exam, 60 marks: every lecture is represented, in roughly equal measure Q110 MCQs Q2transparency Q3TCP vs UDP Q4RMI terms Q5microkernel Q6file service Q7pub-sub Q8DNS caching Q9tickets Q10signatures Q11 · 10 marksJava RMI program 0 20 marks · 60 min 40 marks · 120 min 60 marks · 180 min 3 hours ÷ 60 marks = 3 minutes per mark a 5-mark question gets about 15 minutes, an MCQ item a minute or two, the RMI program about 30 minutes foundations communication inside a node services & security mixed MCQs code you write by hand
No topic is safe to skip. Each block's width is its share of the 60 marks, and the colours match the four bands of the course map. The single largest block is the RMI program, so Part VI repays the most practice. The answers to this paper are worked through in Part XI.
Practice-exam questionMarksTaught in
Q1 Ten multiple-choice items, each turning on one precise distinction10 × 0.5All Parts; worked in Part XI
Q2 Distribution transparency applied to a digital library5Part I
Q3 TCP vs UDP: connection set-up, ordering and loss, flow control5Part III
Q4 Define at-most-once, at-least-once, remote interface, stub, registry5Part VI
Q5 Microkernel architecture and extensibility5Part V
Q6 Draw the file service architecture5Part VIII
Q7 Space and time uncoupling in publish-subscribe5Part VII
Q8 DNS caching with a time-to-live5Part IX
Q9 Checking identity with a ticket, and the attack it allows5Part X
Q10 Digital signatures and certificate chains5Part X
Q11 A Java RMI dictionary service: client and server10Part VI
What staff have confirmed

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.

0.3

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.

CLIENT HOST shop app DNS name server "where is shop.com?" TCP connection TLS WEB SERVER HOST server process thread thread thread OS KERNEL file server invoices, images inventory object on another server message broker to warehouse, email 1 2 3 4 5 6 7 8
One purchase, eight topics. Follow the numbers. The shopper sees a single shop; behind it, at least five machines cooperate by messages, which is exactly the transparency of Part I. The picture's shape, clients asking servers that in turn ask other servers, is the client-server architecture of Part II.
  1. Naming. The app knows only the name shop.com. A DNS name server turns it into a machine address (Part IX).
  2. Sockets and TCP. The app opens a TCP connection to that address through a socket, a reliable stream of bytes (Part III).
  3. Threads. The server gives the request to one of its threads, so that thousands of shoppers can be served at once (Part IV).
  4. Operating system. The kernel underneath protects processes from each other and moves the bytes on and off the network (Part V).
  5. 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).
  6. 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).
  7. Distributed file system. The invoice is saved to a remote file server that looks like a local disk (Part VIII).
  8. Security. The whole connection is encrypted and the shop's identity is checked with a certificate, using TLS (Part X).
In short

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.

0.4

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:

Definition

A term you need to be able to state precisely; the exam has a page of short definitions.

Principle

A rule or property, such as a kind of transparency or an invocation semantics.

Common mistake

Something that loses marks, usually shown next to the correct version.

Exam

How this topic is examined, and the method for answering.

Model answer

A full answer to a past-exam, practice-exam or tutorial question.

Intuition

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.

A study plan

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.