Chapter 1 - Intro Flashcards
What is Tanenbaum’s definition of a distributed system?
A collection of autonomous computing elements that appears to its users as a single coherent system
[1]
What is Colouris’ definition of a distributed system?
One in which components located at networked computers communicate and coordinate their actions only by passing messages
[2]
What are the three primary characteristics of a distributed system according to Schroeder?
- Multiple computers
- Interconnections
- Shared state
[2]
What is Wikipedia’s definition of a distributed system?
A system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another
[2]
What are the individual computing elements in a distributed system often called?
Nodes
[3]
How do nodes in a distributed system typically communicate?
Typically via messages
[3]
What does it mean for the computing elements in a distributed system to be ‘autonomous’?
Each node is independent from the others and may therefore operate concurrently with respect to the others
[4]
What is a key characteristic of time in a distributed system?
No global clock
[5]
What is a consequence of the independence of nodes in a distributed system regarding failures?
Independent failures
[6]
What should a distributed system ideally appear to its users?
A single coherent system
[7]
What is the goal of ‘distributed transparency’?
The user shouldn’t be able to tell where a process executes or where data is stored
[7]
What software layer is often used to manage a distributed system?
Middleware
[8]
Name some key design goals for building a distributed system.
- Resource sharing: Make (remote) resources accessible
- Transparency: Hide that resources are distributed
- Openness: Components can be easily used by others
- Scalability: Scale to increasing users, resources, locations
- Dependability: Deliver reliable and correct processing
- Security: Resources, computations, and users are protected
[9, 10, 11, 12, 13]
What are some examples of resources that are commonly shared in distributed systems?
- Peripherals
- Storage facilities
- Data
- Files
- Services
- Networks
[10]
Name a few types of distribution transparency.
- Access
- Location
- Relocation
- Migration
- Replication
- Concurrency
- Failure
[14]
Why is aiming for full distribution transparency often not the best approach?
There are communication latencies that cannot be hidden, completely hiding failures is impossible, and full transparency can cost performance
[15]
What does it mean for a distributed system to be ‘open’?
It offers components that can easily be used by, or integrated into, other systems
[11]
What are the different types of scalability mentioned?
- Size scalability
- Geographic scalability
- Administrative scalability
[11, 12]
What are some aspects covered by the term ‘dependable’ in distributed systems?
- Available
- Reliable
- Safe
- Maintainable
[12]
What are some key security aspects important in distributed systems?
- Confidentiality
- Integrity
- Authorization
- Authentication
[13]
What are the two main approaches to scaling a distributed system?
- Scale up
- Scale out
[16]
What is a common technique used in distributed systems to improve performance and availability?
Replication and caching
[17]
What is a major challenge introduced by replication in distributed systems?
Maintaining consistency among the multiple copies
[17]
Name a few of the ‘Eight Fallacies of Distributed Computing’.
- The network is reliable
- The network is secure
- The network is homogeneous
- Latency is zero
- Bandwidth is infinite
- There is one administrator
[18]
What are the three main types of distributed systems discussed?
- High performance distributed computing systems
- Distributed information systems
- Distributed systems for pervasive computing
[19, 22, 24]
Describe ‘cluster computing’.
A group of high-end systems connected through a LAN, often homogeneous with the same OS and near-identical hardware
[20]
Describe ‘grid computing’.
Connects heterogeneous systems that are often dispersed across several organizations and span a wide-area network
[20, 21]
Describe ‘cloud computing’.
Involves outsourcing the entire infrastructure needed for applications, providing services like compute, data storage, and networking
[21]
What is a primary focus of ‘distributed information systems’?
The management of information, often involving distributed databases with distributed transactions
[23]
What are the ACID properties in the context of transactions?
- Atomic
- Consistent
- Isolated
- Durable
[23]
What is a ‘Remote Procedure Call’ (RPC)?
A mechanism where one component can send a request to another by performing a local procedure call
[25]
Describe ‘pervasive computing’.
Systems that naturally blend into the environment, often involving mobile and embedded systems
[24]
What is a defining characteristic of ‘mobile computing’?
The location of a device is assumed to change over time
[26]
Describe ‘sensor networks’.
Networks consisting of thousands of small nodes, often with wireless communication and battery power
[27, 28]
What is the ‘Internet of Things’ (IoT)?
The network of devices that contain electronics, software, sensors, actuators, and connectivity
[28]
What is the main idea behind ‘edge computing’?
To bring computing closer to where it is needed, often on distributed devices
[29]
What is a ‘socket’ in the context of network communication?
A communication endpoint that an application can write/read data to be sent/received from the network
[30]
Name some basic operations that can be performed on a socket.
- Socket
- Bind
- Listen
- Accept
- Connect
- Send
- Receive
- Close
[30, 31]
What is the purpose of Python’s ‘Pickle’ library in the context of distributed systems?
It’s a simple protocol for serializing/deserializing Python object structures into a byte stream
[31]