DISTRIBUTED SYSTEMS EXAM STUDY GUIDE
QUESTIONS AND ANSWERS
Definition of a Distributed System - ANSWER A distributed system is a
collection of independent computers that appears to its users as a single
coherent system. -- A. Tanenbaum, M. van Steen
A distributed computing system consists of multiple autonomous processors
that do not share primary memory but cooperate by sending messages over a
communication network. -- Henri Bal
A distributed system is one in which the failure of a computer which you didn't
even know existed can render your own computer unusable. -- Leslie Lamport
Conclusions from definitions
- A distributed system consists of autonomous components that communicate
via message-passing
- A system is not just a set of devices that communicate with each other
- This module is not about communication as such, but about how
communicating devices can be turned into a useful system
- A system must be able to tolerate errors
Design Goals - ANSWER • Design goals
- Sharing of resources
- Open and modular system
- Transparency
- Scalability
Design Goals: Resource Sharing - ANSWER • Resources - Printers,
supercomputers, storage, data, files, networks
,• Sharing saves money
- Staff and students share printers
- Universities share supercomputers
• Sharing enables communication and collaboration
- Exchange via messages: e.g. e-mail, video, audio
- Exchange via shared files: e.g. multiple users edit same database
- Groupware: e.g. multiple users edit same document
Design Goals: Open and Modular - ANSWER • A system should be easy
- to use
- to extend
- to combine with others
- to be integrated into other systems
• Services based on open standards, formalised in protocols
- This eases combining heterogeneous hardware and software
- E.g. standard protocols for accessing e-mails
• Neutral and complete specification of interfaces
• Modular, not monolithic
- System should consists of modules and not be one big block
- E.g. networks consist of many components (cables, switches, ...)
,Design Goals: Transparency - ANSWER Different forms of transparency in a
distributed system (ISO, 1995)
Access - Hide differences in data representation and how a resource is accessed
Location - Hide where a resource is located
Migration - Hide that a resource may move to another location
Relocation - Hide that a resource may be moved to another location while in use
Replication - Hide that a resource is replicated
Concurrency - Hide that a resource may be shared by several competitive users
Failure - Hide the failure and recovery of a resource
Design Goals: Scalability - ANSWER • Scalability
- Scaling by size
• More users and resources can be added without noticeable performance loss
- Geographical scaling
• Components geographically distributed over cities, countries or continents, but
communication delays hardly noticeable
- Administrative scaling
• System manageable even if it spans over different domains / organisations
• Problem: different routing algorithms, security measures etc.
Scalability Problems - ANSWER Concept - Centralized services
Example - A single server for all users
, Concept - Centralized data
Example - A single on-line telephone book
Concept - Centralized algorithms
Example - Doing routing based on complete information
• Characteristics of decentralized algorithms
- No machine has complete information about the system state
- Machines make decisions based only on local information
- Failure of one machine does not ruin the algorithm (fault tolerance)
- There is no implicit assumption that a global clock exists
Synchronous vs asynchronous communication - ANSWER - Synchronous:
Sender waits until it gets an answer
- Asynchronous: Sender does not wait, but continues working
• Problems with synchronous communication
- Okay in small systems, but problem in large systems
- Speed of communication is bound by speed of light and infrastructure
• In large systems communication takes a lot of time
• This increases waiting time for sender
Scaling Techniques - ANSWER • Distribution
- Distribute workload
QUESTIONS AND ANSWERS
Definition of a Distributed System - ANSWER A distributed system is a
collection of independent computers that appears to its users as a single
coherent system. -- A. Tanenbaum, M. van Steen
A distributed computing system consists of multiple autonomous processors
that do not share primary memory but cooperate by sending messages over a
communication network. -- Henri Bal
A distributed system is one in which the failure of a computer which you didn't
even know existed can render your own computer unusable. -- Leslie Lamport
Conclusions from definitions
- A distributed system consists of autonomous components that communicate
via message-passing
- A system is not just a set of devices that communicate with each other
- This module is not about communication as such, but about how
communicating devices can be turned into a useful system
- A system must be able to tolerate errors
Design Goals - ANSWER • Design goals
- Sharing of resources
- Open and modular system
- Transparency
- Scalability
Design Goals: Resource Sharing - ANSWER • Resources - Printers,
supercomputers, storage, data, files, networks
,• Sharing saves money
- Staff and students share printers
- Universities share supercomputers
• Sharing enables communication and collaboration
- Exchange via messages: e.g. e-mail, video, audio
- Exchange via shared files: e.g. multiple users edit same database
- Groupware: e.g. multiple users edit same document
Design Goals: Open and Modular - ANSWER • A system should be easy
- to use
- to extend
- to combine with others
- to be integrated into other systems
• Services based on open standards, formalised in protocols
- This eases combining heterogeneous hardware and software
- E.g. standard protocols for accessing e-mails
• Neutral and complete specification of interfaces
• Modular, not monolithic
- System should consists of modules and not be one big block
- E.g. networks consist of many components (cables, switches, ...)
,Design Goals: Transparency - ANSWER Different forms of transparency in a
distributed system (ISO, 1995)
Access - Hide differences in data representation and how a resource is accessed
Location - Hide where a resource is located
Migration - Hide that a resource may move to another location
Relocation - Hide that a resource may be moved to another location while in use
Replication - Hide that a resource is replicated
Concurrency - Hide that a resource may be shared by several competitive users
Failure - Hide the failure and recovery of a resource
Design Goals: Scalability - ANSWER • Scalability
- Scaling by size
• More users and resources can be added without noticeable performance loss
- Geographical scaling
• Components geographically distributed over cities, countries or continents, but
communication delays hardly noticeable
- Administrative scaling
• System manageable even if it spans over different domains / organisations
• Problem: different routing algorithms, security measures etc.
Scalability Problems - ANSWER Concept - Centralized services
Example - A single server for all users
, Concept - Centralized data
Example - A single on-line telephone book
Concept - Centralized algorithms
Example - Doing routing based on complete information
• Characteristics of decentralized algorithms
- No machine has complete information about the system state
- Machines make decisions based only on local information
- Failure of one machine does not ruin the algorithm (fault tolerance)
- There is no implicit assumption that a global clock exists
Synchronous vs asynchronous communication - ANSWER - Synchronous:
Sender waits until it gets an answer
- Asynchronous: Sender does not wait, but continues working
• Problems with synchronous communication
- Okay in small systems, but problem in large systems
- Speed of communication is bound by speed of light and infrastructure
• In large systems communication takes a lot of time
• This increases waiting time for sender
Scaling Techniques - ANSWER • Distribution
- Distribute workload