CH 1
CH 1
Introduction
1
1. Introduction
1.1 Introduction to Distributed Systems
1.2 Characteristics of Distributed Systems
1.3 Goals of Distributed Systems
1.4 Hardware Concepts
1.5 Software Concepts
1.6 Multiprocessor Systems, Multicomputer
Systems
1.7 Distributed Programming
2
Computer and Network Evolution
Computer Systems
– 10 million dollars and 1 instruction/sec
3
Definition of a Distributed System
4
Definition of a Distributed System
1.1
7
Make Resources Accessible
Access resources and share them in a controlled
and efficient way.
Printers, computers, storage facilities, data, files, Web
pages, and networks, …
Connecting users and resources also makes it
easier to collaborate and exchange information.
Internet for exchanging files, mail, documents, audio,
and video
8
Openness
Platforms
Languages
9
Scale in Distributed Systems
Scalability: At least three components:
Number of users and/or processes (size scalability)
Maximum distance between nodes (geographical scalability)
Number of administrative domains (administrative scalability)
10
Techniques for Scaling
Distribution: Partition data and
computations across multiple machines:
Move computations to clients (Java applets)
Decentralized naming services (DNS)
Decentralized information systems (WWW)
11
Scaling Techniques (cont..)
1.4
14
Transparency in a
Distributed System
Transparency Description
16
Advantages of distributed systems
over Independent PCs
17
Disadvantages of distributed
systems
Security and privacy
•Security: The prevention and protection of (computer) assets
from unauthorized access.
•Privacy: The right of the individual to be protected against
intrusion into personal affair by direct physical means or by
publication of information.
“The most secure computers are those not connected to the
Internet and shielded from any interference”
18
Developing Distributed Systems: Pitfalls
19
Hardware and Software concepts
Major issues
How they are interconnected?
How they communicate?
20
Hardware Concepts
21
Models of Computing
Memory
(Code and Data)
Instructions Data
22
Shared Memory in Multiprocessors
Shared Memory
(Code and Data)
I D I D I D I D
23
Shared Memory & Private Memory
Multiprocessors (not multicomputers)
Single physical address space shared by all CPUs
CPU A writes 37 to address 1000
memory
Multicomputers
Every machine has its own private memory
CPU A writes 37 to its address 1000
24
Bus-based & Switch-based
25
Multicomputers
Bus-Based multicomputers
easy to build
Switched multicomputers
interconnection networks
26
• A bus can get overloaded rather quickly with each CPU accessing
the bus for all data and instructions.
• A solution to this is to add cache memory between the
CPU and the bus.
• The cache holds the most recently accessed regions of memory.
• This way, the CPU only has to go out to the bus to access main
memory only when the regions are not in its cache.
28
Switched Multiprocessors
Using switches enables us to achieve a far greater CPU
density in multiprocessor systems.
An m ×n crossbar switch is a switch that allows any of m
elements to be switched to any of n elements.
To use a crossbar switch, we place the CPUs on one axis
(e.g. m) and the break the memory into a number of chunks
which are placed on the second axis (e.g. n memory
chunks).
There will be a delay only when multiple CPUs try to access
the same memory chunk.
29
Switched Multiprocessors
30
Software Concept
The software design goal in building a distributed system is to
create a Single System Image - have a collection of
independent computers appear as a single system to the user(s).
31
Software Concept
Loosely-coupled - software in which the systems interact with
each other to a limited extent as needed. For the most part, they
operate as fully-functioning stand-alone machines.
If the network goes down, things are pretty much functional.
Loosely coupled systems may be ones in which there are shared
services (parts of file service, web service).
With tightly-coupled software, there is a strong dependence on
other machines for all aspects of the system.
Essentially, both the interconnect and functioning of the remote
systems are necessary for the local system's operation.
32
Software-Hardware Combination
Three types:
Network Operating Systems
33
Network Operating Systems
34
(True) Distributed Systems
tightly-coupled software on loosely-coupled hardware
provide a single-system image or a virtual machine
(uniprocessor)
To accomplish this, we need certain capabilities:
Uniform naming from anywhere; the file system
should look the same.
Same system call interface everywhere
35
Time Sharing Systems
36
Comparison between Systems
Distributed OS
Number of copies of OS 1 N N
Global,
Resource management Global, central Per node
distributed
Scalability No Moderately Yes
37