-
readings: CDK, Distributed Systems: Concepts and Designs, Chapter 1
AWOL
from first lecture
Went
over the course handout. Gave course
overview through a series of pictures.
Distributed
System: a system in which hardware or software
components located at networked computers communicate and coordinate their
actions only by passing messages.
Port: a resource managed by the nucleus
of the OS that can be requested by and granted to a (server) process. To implement operations with TCP and UDP on
the Internet Protocol, certain well-known ports are assigned to server
processes at system start up. For
example, port 21 is assigned to ftp, 22 to ssh, 23 to telnet, and 80 to
http. There are TCP and UDP numbers,
but typically the ftp server requests both TCP port number 21 and UDP port
number 21.
Three
significant characteristics of a Distributed System:
1.
Concurrent
execution
·
concurrency: several processes are in between starting
and finishing at the same time
·
parallelism: several processes are executing at the same
time
2.
No
global clock
·
limits
to how closely computers can synchronize their clocks
3.
Independent
failures
·
any
component of the network can fail and software must deal with this
Prime
Motivation for Distributed Systems: resource
sharing
·
hardware
components: printers, disks
·
software
components: files, databases, other
data objects
·
transient
components: stream of video frames from
digital camera, audio connection to a mobile phone
Other
Motivations:
·
economic (cheap) – not mentioned in CDK
·
fast: concurrency and scalability
·
reliable:
secure and fault-tolerant
·
extendible: heterogeneity and openness
·
convenient:
transparency
Challenges
for Distributed Systems
1.
Heterogeneity: variety and differences in
networks, computer hardware, operating systems, programming languages, and
implementations by different developers
2.
Openness: system made extensible by
publishing the specification and
documentation for key software interfaces, i.e. made available to software
developers.
3.
Security: confidentiality (protection
against disclosure to unauthorized individuals), integrity (protection against
alteration or corruption), and availability (protection against interference
with the means to access the resource).
4.
Scalability: system will remain effective if
there is a significant increase in the number of resources and users
5.
Failure
Handling: failure may be partial in a distributed
system because some components may fail while others continue processing.
6.
Concurrency: allowing requests from several
clients to be processed such that they are in between starting and finishing at
the same time
7.
Transparency:
concealment from the user and application programmer of the separation
of components in a distributed system , so that the system is perceived as a
whole rather than as a collection of independent components.
·
users
can not tell where resources such as CPUs, printers, files, and database are
located
·
also cannot
tell where other users are located
·
resources
can be moved from one location to another without their names changing
·
e.g., files
or printers moving between servers
·
users
don’t need to know how many copies of resources are available
·
e.g., files
·
system
ensures resources are accessed in a sequential manner (at some level of detail)
·
users do not
have to consider other users
·
a more
elaborate scheme than simple file locking
·
computer,
runtime system and OS make use of all processors available without explicit
coding by user
·
e.g.,
same executable creates more parallel processes when more processors are
available
CDK
Types of Transparency
1.
Access
Transparency: enables local and remote resources to be
accessed using identical operations
2.
Location
Transparency: enables resources to be accessed without
knowledge of their (physical) location
a.
Tanenbaum's
number 1
b.
Access
transparency and location transparency are together referred to as network
transparency.
3.
Concurrency
Transparency: enables several processes to operate
concurrently using shared resources without interference between them
a.
Tanenbaum's
number 4
4.
Replication
Transparency:
enables multiple instances of resources to be used to increase reliability and
performance without knowledge of the replicas by users or application
programmers
a.
Tanenbaum's
number 3 and 5
5.
Failure
Transparency:
enables the concealment of faults, allowing users and application programs to
complete their tasks despite the failure of hardware or software components
6.
Mobility
Transparency:
allows the movement of resources and clients within a system without affecting
the operation of users or programs
a.
Tanenbaum's
number 2
7.
Performance
Transparency: allows the system to be reconfigured to
improve performance as loads change
8.
Scaling
Transparency:
Transparency: allows the system and applications to expand in scale without
change to the system structure or the application algorithms
Advantages
of Distributed Systems
a)
Compared to centralized systems:
b)
Compared to isolated PCs:
Disadvantages
of Distributed Systems
Scalability
of Distributed Systems
Reliability
of a Distributed System
1.
availability
2.
security
3. fault
tolerance
-
may
want to reject the request that caused crash
-
performance
degrades when one crashes or is removed from service
REMAINING NOTES WERE NOT COVERED IN CLASS
MAY BE USED IN LATER LECTURES
Hardware
for Distributed Systems
a)
distributed systems are MIMD, i.e., have multiple instruction streams and
multiple data streams
b) matrix:
type | shared memory? |
of | Yes =
Multiprocessor | No = Multicomputer |
connection | (usually tightly coupled) | (usually loosely coupled) |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
bus | Sequent , Encore | Workstation on a
LAN |
| SGI (Grendel) | (Linux
boxes) |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
switched | Ultracomputer, RP3 | Hypercube, Transputer |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
c) tightly
coupled hardware
d) loosely
coupled hardware
e)
multiprocessor
f)
multicomputer
g) bus
system
h) switched
system
i)
bus-based multiprocessors
Software
for Distributed Systems
Types
of Software for Distributed Systems
a) Network
Operating System
b)
Integrated Distributed System
c)
Multiprocessor Timesharing System
d) Doesn’t
make sense:
Performance
of a Distributed System
o distribute computations with
course-grained parallelism (large computations, low interaction rates, little
data)
o don’t distribute computations with
fine-grained parallelism (small computations, interact with one another)
Multiprocessor
Timesharing Systems
P1 P2
P2 shared
cache cache
cache memory
| |
| |
================================== bus
In
(shared) main memory:
Short-term
scheduler’s queue (run queue)
Processors:
P1, P2, P3
Process B
blocks (e.g., requires I/O)
Features: