0% found this document useful (0 votes)
35 views

Distributed Systems: What Is A Distributed System?

A distributed system is one that looks like a centralized system but runs on multiple independent CPUs. Key characteristics include independent processing units that communicate over a hardware interconnect, independent processor failures, and shared state among processors. Design issues for distributed systems include scaling, communication, coordination, transparency, naming, load sharing, consistency, failures, security, heterogeneity, and mobility.

Uploaded by

anon_571666
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Distributed Systems: What Is A Distributed System?

A distributed system is one that looks like a centralized system but runs on multiple independent CPUs. Key characteristics include independent processing units that communicate over a hardware interconnect, independent processor failures, and shared state among processors. Design issues for distributed systems include scaling, communication, coordination, transparency, naming, load sharing, consistency, failures, security, heterogeneity, and mobility.

Uploaded by

anon_571666
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Distributed Systems

What is a Distributed System?


! Tanenbaum and van Renesse: A distributed system is
one that looks to its users like an ordinary, centralized,
Distributed Systems system but runs on multiple independent CPUs
! Symptoms? Shroeder:
! Multiple, independent processing units
March 5, 2001 ! Processors communicate via a hardware
interconnect
! Processing unit failures are independent
! Manage resource sharing
! State is shared among processors
2

Distributed Systems, cont. Distributed Systems, cont.


Design Issues
Naming
! Scaling ! Consistency ! What do we need to name?
! Communication ! Failures ! Processes, Services, Hosts, Objects,
! Coordination ! Security Groups, ...
! Transparency ! Heterogeneity ! Binding - Discovering and associating a name
! Naming ! Mobility to a one of these
! Load sharing ! e.g., DNS: hostname to IP address

3 4

1
Distributed Systems, cont. Distributed Systems, cont.

Communication Consistency
! Messages can have many characteristics: ! Since we assume network links can fail at any
time, replication is required to maintain
! Length, priority, streams consistency for longer computations
! Communication medium properties affect ! Replication of data
communication performance
! Replication of computation
! bandwidth, latency, multi-cast capability,
message prioritization ! Costs associated with consistency:
! Reduction in the amount of effective
resources
! Managing extended failures
5 6

Distributed Systems, cont. Distributed Systems, cont.

Load Sharing Remote Procedure Call


! Local vs. non-local ! Introduced by Birrell and Nelson in 1985 (Xerox
PARC)
! e.g., communication failure less likely in local
clusters of processors ! Abstracts the notion of where a computation runs
! Process migration can be expensive ! Semantics can include:
! What about a system that knows the load of each ! notion that computation may fail (e.g.,
machine, then assigns computation? errors, faults, deadlocks)
! Doesn't scale well ! blocking or non-blocking
! Issues - Turning Completeness, Propagation ! synchronous vs. asynchronous
Delay ! at least once, at most once, exactly once
7 8

2
Distributed Systems, cont. Distributed Systems, cont.

Remote Procedure Call, cont. Server Registration


! Use Discovery or Directory Service
! Implementation assumes a client/server
framework ! Each server registers a service and a version
! RPC infrastructure must implement: ! Service - typically implemented as an integer;
a set of well-known services exist
! Server Registration, Binding, Marshalling,
Message Send/Receive ! Version - a number used to select which
server to use
! Compiler/linker can implement stubs for
RPC ! Who decides which server to return to the client?
! RPC used by NFS, AFS, but not X ! Key issue: Load Balancing

9 10

Distributed Systems, cont. Distributed Systems, cont.

Marshalling End to End Design


! Assume heterogeneous computing environment ! History: Design of the Internet
! Need to have a consistent set of data types ! Q: Where should functionality be built into
! What about pointers? the Internet
! Client/Server operate in separate contexts… ! e.g., should sessions & flows be a
fundamental part of the network, or something
! What about exceptions?
implemented at higher layers?
! Exceptions can result from errors at the client
site or network problems

11 12

3
Distributed Systems, cont.
End to End Design
! Insight - Many functions can be built at the ends
of the network (e.g., RPC). Thus, building these
functions in at lower layers will have significant
tradeoffs
! e.g., In the 70's, everyone used the DARPA-
net to log into computers. If "sessions" had
been built into the lower layers of the Internet,
web-based traffic in the 90's would not have
scaled well

13

You might also like