Title: Overview
1Introduction
2Examples of Distributed Systems
- DNS
- Hierarchical distributed database
- WWW
- Origin servers and web caches
- Distributed database
- Cray T3E
- 2048 tightly coupled homogeneous processors
- Distributed/parallel computing
- Condor/RES
- Loosely coupled heterogeneous workstations
- Parallel/distributed computing
3Other Distributed Systems
- Email
- Electronic banking
- Airline reservation system
- Peer-to-peer networks
- Etc., etc., etc.
4Computer Revolution
- Processing power
- 50 years ago, 100M for 1 instr/sec
- Today, 1K for 107 instructions/sec
- Price/perform. improvement of 1012
- If cars had followed same path as computers
- a Rolls Royce would now cost 1 dollar and get a
billion miles per gallon - And it would explode once a year, killing
everyone inside
5Computer Revolution
- High speed networks
- 30 years ago, networks were unknown
- Today, Gigabit networks and the Internet
- Before networks, centralized systems
- Today, distributed systems
- Computers in many locations work as one
6What is a Distributed System?
- According to your textbook
- A collection of independent computers that
appears to its users as a single coherent system
- Two parts to definition
- Hardware ? machines are autonomous
- Software ? machines appear as one system
- Implies that communication hidden from user
- Implies that organization hidden from user
7What is a Distributed System?
- According to dict.die.net
- A collection of (probably heterogeneous) automata
whose distribution is transparent to the user so
that the system appears as one local machine - This is in contrast to a network, where the user
is aware that there are several machines, and
their location, storage replication, load
balancing and functionality is not transparent - Crucial point is transparency
8How to Implement a Dist. System?
- A distributed system is a collection of
independent computers - that acts like a single system
- How to accomplish this?
- Middleware
- Make distributed system as transparent as possible
9Role of Middleware
- Distributed system as middleware
- Middleware extends over multiple machines
10Goals
- For a distributed system to be worthwhile authors
believe it should - Easily connect users to resources
- Hide fact that resources are distributed
- Be open
- Be scalable
- First 2 of these about transparency
- Transparent, open, scalable
11Transparency
- Transparent system acts like one computer
- Various aspects of transparency listed above
12Degree of Transparency
- Cannot hide physical limitations
- Time it takes to send packet
- May be a tradeoff between transparency and
performance - What to do if Web request times out?
- Keeping replicated data current
13Openness
- Open standards-based
- Provides
- Interoperability
- Portability
- Ideally, flexible, i.e., extensible
- But many useful systems follow the American
standard - Do whatever you want
14Scalability
- Scalability issues/limitations
15Scalability
- Authors believe centralized is bad
- Centralized server is source of congestion,
single point of failure - Centralized data leads to congestion, lots of
traffic - Centralized algorithm must collect all info and
process it (e.g., routing algs) - Google? Napster?
16Scalability
- Decentralized algorithms
- No machine has complete system state
- Decisions based on local info
- Failure of one machine does not kill entire
algorithm - No assumption of global clock
- Examples?
17Geographic Scalability
- Big difference between LAN and WAN
- LANs have synchronous communication
- Client can block until server responds
- On LAN, global time may be possible (to within a
few milliseconds) - WAN unreliable, point-to-point
- WAN has different admin domains
- A security nightmare
18Scaling Techniques
- Scaling problems due to limited capacity of
networks and servers - Three possible solutions
- Hide latencies ? do something useful while
waiting (asynchronous comm.) - Distribution ? DNS, for example
- Replication ? allows for load balancing
- Replication creates consistency issues
19Scaling Techniques
- Server or client check form as its filled out?
- Having client do more, as in (b), may reduce
latency (but may cause security problems)
20Scaling Techniques
- DNS name space divided into zones
- Goto server in Z1 to find server Z2 and so on
- Like a binary search for correct server
21Hardware Issues
- For our purposes, 2 kinds of machines
- Multiprocessor
- Different processors share same memory
- Multicomputer
- Each processor has its own memory
- Each of these could use either bus or switched
architecture
22Hardware Issues
multiprocessor
multicomputer
23Multiprocessors
- A bus-based multiprocessor
- Cache coherence is an issue
24Multiprocessors
- A crossbar switch
- Omega switching network
25Homogeneous Multicomputer
Hypercube
26Software Concepts
- DOS ? Distributed Operating Systems
- NOS ? Network Operating Systems
- Middleware ? self-explanatory
27Uniprocessor OSs
- Separate apps from OS code via microkernel
28Multiprocessor OSs
monitor Counter private int count
0 public int value() return count void
incr () count count 1 void decr()
count count 1
- Hoe to protect count from concurrent access?
29Multiprocessor OSs
monitor Counter private int count 0 int
blocked_procs 0 condition unblocked public
int value () return count void incr ()
if (blocked_procs 0) count
count 1 else signal
(unblocked)
void decr() if (count 0) blocked_procs
blocked_procs 1 wait (unblocked)
blocked_procs blocked_procs 1 else
count count 1
- Protect count from concurrent access
- Using blocking
30Multicomputer OSs
31Multicomputer OSs
32Multicomputer OSs
33Programming Issues
- Programming multicomputers much harder than
multiprocessors - Why?
- Message passing
- Buffering, blocking, reliable comm., etc.
- One option is to emulate shared memory on
multicomputer - Large virtual address space
34Distributed Shared Memory
- Pages of address space distributed among 4
machines - After CPU 1 references pg 10
- If page 10 read only and replication used
35Distributed Shared Memory
- False sharing of page between two processes
- Two independent processors share same page
36Network OS
- Network OS
- Each processor has its own OS
37Network OS
- Clients and server in a network OS
- Global shared file system
38Distributed System
- Distributed OS not a distributed system by our
definition - Network OS not a distributed system by our
definition - What we need is middleware
39Positioning Middleware
- A distributed system as middleware
- Individual node managed by local OS
- Middleware hides heterogeneity of underlying
systems
40Middleware and Openness
- Open middleware-based system
- Middleware layer should
- Use the same protocols
- Provide same interfaces to apps
41Comparison of Systems
42Middleware Services
- Main goal is access transparency
- Hides low level message passing
- Naming
- Like yellow pages or URL
- Persistence
- For example, a distributed file system
- Distributed transactions
- Read and writes are atomic
- Security
43Client Server Model
44Clients and Servers
- Interaction between client and server
45Example Client and Server
- header.h
- Used by client
- And by server
46Example Client and Server
47Example Client and Server
- Client using server to copy a file
48Processing Level
- Internet search engine as 3 layers
49Multitiered Architectures
- Alternative client-server organizations
50Multitiered Architectures
- A server acting as client
51Modern Architectures
- Horizontal distribution of Web service
52Summary
- Distributed system
- Autonomous computers that operate together as a
single coherent system - Potential advantages
- Can integrate homogeneous systems
- Scales well, if properly designed
- Potential disadvantages
- Complexity
- Degraded performance
- Poorer security
53Summary
- Different types of dist systems
- Distributed OS
- For tightly coupled system
- Cant integrate different systems
- Network OS
- For heterogeneous system
- No single system view
54Summary
- Middleware systems based on
- Remote procedure calls
- Distributed objects, files, documents
- Vertical organization
- Horizontal organization