Distributed
1. Definition
A distributed operating system (DOS) runs on a collection of independent computers (nodes) connected by a network and makes them appear to the user as one single coherent system. Each node has its own processor and local memory (there is no shared physical memory and no global clock), yet the system as a whole shares resources, balances load and survives partial failures.
Its distinguishing feature over a network OS is transparency: in a distributed OS the user does not know (or need to care) which machine holds a file or does the computation; in a network OS the user explicitly logs into a specific machine and copies files between them.
2. Goals and Advantages
- Resource sharing — a printer, disk, GPU or dataset attached to one node is usable from any node.
- Computation speed-up — one large job is split across many processors (parallel processing).
- Reliability and availability — if a node fails, replicas and the rest of the system continue; better fault tolerance.
- Scalability — capacity grows by adding nodes rather than buying one bigger machine.
- Communication — built-in message passing and remote services (mail, chat, shared data).
- Geographic distribution — users at different locations work on one logically unified system.
- Cost-effectiveness — many cheap machines can beat one large mainframe (Sun's "the network is the computer").
3. Forms of Transparency
| Transparency | What the user must not have to know |
|---|---|
| Access | How to reach a resource (open a remote file like a local one) |
| Location | Where the resource physically is |
| Migration | That a process or file has moved |
| Replication | That several copies exist |
| Concurrency | That others are using the same resource — sharing is automatic |
| Parallelism | That a computation runs on several nodes |
| Failure | That part of the system has failed and a replica is serving the request |
4. Design Challenges
- No global clock — nodes cannot agree on a common time; ordering of events requires logical clocks (Lamport timestamps) or synchronised physical clocks (NTP).
- No shared memory — communication is by message passing, with all the latency and unreliability that a network brings.
- Partial failure — a node or link may die silently; the system must detect failure (timeouts, heartbeats) and recover.
- Naming and location — a mechanism is needed to find resources whose address may change (name servers, directories).
- Consistency and replication — keeping multiple copies of data consistent, given CAP-style trade-offs (consistency vs availability under partition).
- Distributed mutual exclusion, deadlock and elections — classical algorithms (Ricart-Agrawala, Bully, Raft/Paxos consensus) are needed.
- Security — authentication and encryption across an untrusted, open network.
- Heterogeneity — nodes may run different hardware and OSs, requiring portable interfaces and standard protocols.
5. Architectures and Models
| Model | Description | Examples |
|---|---|---|
| Client-server | Clients request, servers provide | Web, database, DNS servers |
| Three-tier | Presentation → application → data layers separately distributed | Enterprise web applications |
| Peer-to-peer | All nodes are equal; both clients and servers | BitTorrent, blockchain networks |
| Cluster | Many machines in one location working as one system | Beowulf clusters, Kubernetes node pools |
| Grid | Federated, geographically distributed resources from many owners | CERN WLCG grid |
| Cloud | Elastic virtual resources distributed across data centres | AWS, Azure, GCP |
Tightly vs loosely coupled systems
| Basis | Tightly coupled (multiprocessor) | Loosely coupled (distributed) |
|---|---|---|
| Memory | Shared common memory | Each node has its own private memory |
| Communication | Through shared memory | Through messages over a network |
| Clock | Single common clock | Independent clocks, need synchronisation |
| Delay | Nanoseconds (bus access) | Microseconds to milliseconds (network) |
| Failure | Whole system may fail | Individual nodes fail independently |
| Example | SMP server with many cores | Cluster of PCs / data centre |
6. Distributed vs Network vs Centralised OS
| Basis | Centralised OS | Network OS | Distributed OS |
|---|---|---|---|
| Machines | One | Many, each with its own OS | Many, one image to the user |
| Memory | Shared | Separate | Separate |
| Source of transparency | Not applicable | Low — user knows the machine names | High — user sees one system |
| Resource access | Local | Explicit remote login/copy | Automatic and location independent |
| Example | Windows on a PC | Windows Server + mapped network drives | Amoeba, Plan 9, Sprite, Mach, LOCUS |
7. Examples and Modern Context
Classical DOS research systems: Amoeba, Mach, Sprite, LOCUS, Plan 9, Chorus. Distributed file systems and services built on the concept: NFS, AFS, HDFS, Google File System, distributed databases (Cassandra, MongoDB sharded), MapReduce/Hadoop, and container orchestration (Kubernetes) — where an application runs across many machines as if on one platform.
8. Exam Points
- Define a distributed operating system and explain its goals/advantages — 5 marks, frequent.
- Differentiate distributed OS, network OS and centralised OS — 5 marks, very frequent.
- What is transparency? List any four types — 3-5 marks.
- Explain the design issues of a distributed system (no global clock, no shared memory, partial failure, consistency) — 5-7 marks, frequent.
- Differentiate tightly coupled and loosely coupled systems — 5 marks.
- How is clock synchronisation and mutual exclusion handled in distributed systems? — 3-5 marks.