Distributed systems Midterm

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/112

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

113 Terms

1
New cards
2
New cards
3
New cards
4
New cards
5
New cards
A collection of independent computers that appears to users as a single coherent system ! Distributed System
6
New cards
The main goal of a distributed system: make it easy for users and applications to access remote resources and share them efficiently ! Goal of Distributed Systems
7
New cards
Hide differences in data representation and how a resource is accessed ! Access Transparency
8
New cards
Hide where a resource is located ! Location Transparency
9
New cards
Hide that a resource may move to another location ! Migration Transparency
10
New cards
Hide that a resource may be moved during use ! Relocation Transparency
11
New cards
Hide that a resource is replicated across the system ! Replication Transparency
12
New cards
Hide that a resource can be shared by several users at once ! Concurrency Transparency
13
New cards
Hide failure and recovery of a resource ! Failure Transparency
14
New cards
Implementations from different vendors can work together ! Interoperability
15
New cards
Applications developed for one system can run on another ! Portability
16
New cards
Relatively easy to add or remove components ! Extensibility
17
New cards
No machine has complete system state, decisions are local, failure of one does not ruin algorithm, no global clock assumed ! Properties of Decentralized Algorithms
18
New cards
Scalability problem: small latency in LAN vs large latency in WAN ! Geographical Scalability
19
New cards
Technique: try to avoid waiting for responses to remote service requests ! Hiding Communication Latency
20
New cards
Technique: split components into smaller parts and spread them (ex: DNS, WWW) ! Distribution
21
New cards
Technique: replicate components across the system for availability and load balancing ! Replication
22
New cards
Replication + caching leads to consistency problems ! Consistency Problem
23
New cards
Assuming the network is reliable, secure, homogeneous, zero latency, infinite bandwidth, etc. ! Pitfalls in Distributed Systems
24
New cards
A homogeneous collection of PCs/workstations connected by high-speed LAN, running same OS ! Cluster Computing System
25
New cards
High heterogeneity, resources from different organizations pooled into a Virtual Organization ! Grid Computing
26
New cards
Transaction property: indivisible execution ! Atomicity
27
New cards
Transaction property: does not violate system rules ! Consistency
28
New cards
Transaction property: concurrent transactions don’t interfere ! Isolation
29
New cards
Transaction property: committed changes are permanent ! Durability
30
New cards
Middleware that facilitates application communication in organizations ! Enterprise Application Integration
31
New cards
Devices are small, battery-powered, wireless, must handle context, ad hoc composition, and sharing ! Pervasive Systems
32
New cards
33
New cards
How software components are organized and interact ! Software Architecture
34
New cards
An instantiation of software architecture, e.g., client-server, peer-to-peer, edge computing ! System Architecture
35
New cards
Organizing software in layers, requests down and results up ! Layered Architecture
36
New cards
Each object is a component, interaction via (remote) procedure calls ! Object-based Architecture
37
New cards
Components communicate via a shared repository ! Data-centered Architecture
38
New cards
Processes communicate by propagating events, often publish/subscribe ! Event-based Architecture
39
New cards
One server provides resources to multiple clients ! Centralized Architecture
40
New cards
Clients act as both servers and clients, often organized as overlay networks ! Peer-to-Peer Architecture
41
New cards
Combination of centralized and P2P, often with edge servers ! Hybrid Architecture
42
New cards
Client-server communication without connection, efficient if no loss ! Connectionless Protocol
43
New cards
Client-server communication with connection setup/teardown, reliable (TCP/IP) ! Connection-oriented Protocol
44
New cards
Three levels: UI (client), processing (app logic), data (DB/files) ! Application Layering
45
New cards
A thin client handles only UI; server handles processing + data ! Thin Client
46
New cards
A fat client handles UI + processing; server handles data ! Fat Client
47
New cards
Three-tiered model: client (UI), app server (processing), DB server (data) ! Three-Tiered Architecture
48
New cards
Problem: how to find a file X in P2P when publisher may be offline ! Lookup Problem
49
New cards
Organized using Distributed Hash Tables (DHT), keys map deterministically to nodes ! Structured P2P
50
New cards
Chord system maps keys to successor node with ID ≥ key ! Chord Lookup
51
New cards
When node joins/leaves, it updates successor/predecessor and transfers data ! Chord Membership Management
52
New cards
Classic example of client-server distributed file system from Sun Microsystems ! NFS (Network File System)
53
New cards
54
New cards
A program in execution, sharing CPU, memory, I/O ! Process
55
New cards
Creating a process or switching context is expensive ! Problem with Processes
56
New cards
Multiple threads within one process for efficiency ! Multithreading
57
New cards
One thread for user interaction, one for computation, one for backup ! Example: Spreadsheet with Threads
58
New cards
In UNIX, different parts of apps communicate with IPC mechanisms ! Threads in UNIX Applications
59
New cards
Kernel does not know threads; lightweight; blocking call blocks entire process ! User-level Threads
60
New cards
Kernel manages threads; can switch on blocking; expensive to create/switch ! Kernel-level Threads
61
New cards
A web browser uses multiple threads to fetch components simultaneously ! Multithreaded Client
62
New cards
Server with dispatcher thread and multiple worker threads ! Multithreaded Server
63
New cards
Run multiple OS instances on one machine for portability and fault isolation ! Virtualization
64
New cards
Organizes VMs between hardware and OS for portability/flexibility ! Virtual Machine Monitor
65
New cards
Server that handles requests directly, one at a time ! Iterative Server
66
New cards
Server that forks threads/processes for requests ! Concurrent Server
67
New cards
Daemon like inetd that listens on multiple ports, launches specific servers on demand ! Superserver (inetd)
68
New cards
Server does not store client state, e.g., web server ! Stateless Server
69
New cards
Server maintains client-specific info (locks, cookies) ! Stateful Server
70
New cards
Multiple servers grouped for performance and fault tolerance ! Server Cluster
71
New cards
72
New cards
Layer 1: Bits between sender/receiver ! Physical Layer
73
New cards
Layer 2: Frames with error/control ! Data Link Layer
74
New cards
Layer 3: Routing packets across networks ! Network Layer
75
New cards
Layer 4: Provides reliable/unreliable transport (TCP/UDP) ! Transport Layer
76
New cards
Layer 5: Manages sessions between applications ! Session Layer
77
New cards
Layer 6: Formats/presents data ! Presentation Layer
78
New cards
Layer 7: Supports apps like HTTP, FTP ! Application Layer
79
New cards
Message stored until delivery possible ! Persistent Communication
80
New cards
Message dropped if receiver inactive ! Transient Communication
81
New cards
Sender continues immediately after sending message ! Asynchronous Communication
82
New cards
Sender blocks until request is accepted or processed ! Synchronous Communication
83
New cards
Blocking request–reply model between client/server ! Conventional RPC
84
New cards
Stub on client packs request, stub on server unpacks ! RPC Stubs
85
New cards
Client continues without waiting for reply, callback later ! Asynchronous RPC
86
New cards
Socket API: create, bind, listen, accept/connect, send/recv, close ! Berkeley Sockets
87
New cards
Standard library for passing messages in distributed computing ! MPI (Message Passing Interface)
88
New cards
Persistent message delivery with queues ! Message Queuing System
89
New cards
90
New cards
String of bits/characters referring to an entity ! Name
91
New cards
Access point through which an entity is operated ! Address
92
New cards
Unique reference to at most one entity, never reused ! Identifier
93
New cards
Resolve a name to an address ! Name Resolution
94
New cards
Send broadcast asking “who has this address” ! Broadcasting / ARP
95
New cards
When entity moves, leaves reference to new location ! Forwarding Pointers
96
New cards
Entity always found via “home” location ! Home-Based Approach
97
New cards
Mapping identifiers/keys to nodes via hash tables ! Distributed Hash Table (DHT)
98
New cards
Each node stores pointers to nodes at distances 2^i ! Chord Finger Table
99
New cards
Names organized into a graph of directories and leaves ! Structured Naming
100
New cards
Another name for the same entity ! Alias