Chapter 1-Introduction (2)
Chapter 1-Introduction (2)
2
Definition of a Distributed System
a distributed system is:
a collection of independent computers that appears to its
users as a single coherent system - computer (Tanenbaum
& Van Steen)
3
Other Definitions
a distributed system is a system designed to support the
development of applications and services which can exploit a
physical architecture consisting of multiple, autonomous
processing elements that do not share primary memory but
cooperate by sending asynchronous messages over a
communication network (Blair & Stefani)
4
Why Distributed?
Resource and Data Sharing
printers, databases, multimedia servers, ...
Availability, Reliability
the loss of some instances can be hidden
Scalability, Extensibility
the system grows with demand (e.g., extra servers)
Performance
huge power (CPU, memory, ...) available
Inherent distribution, communication
organizational distribution, e-mail, video
5
Problems of Distribution
Concurrency, Security
clients must not disturb each other
Privacy
e.g., when building a preference profile
unwanted communication such as spam
Partial failure
we often do not know where the error is (e.g., RPC)
Location, Migration, Replication
clients must be able to find their servers
Heterogeneity
hardware, platforms, languages, management
6
Characteristics of Distributed Systems
differences between the computers and the ways they
communicate are hidden from users
users and applications can interact with a distributed system
in a consistent and uniform way regardless of location
distributed systems should be easy to expand and scale
a distributed system is normally continuously available, even
if there may be partial failures
7
1.2 Organization and Goals of a Distributed System
to support heterogeneous computers and networks and to
provide a single-system view, a distributed system is
often organized by means of a layer of software called
middleware that extends over multiple machines
9
different forms of transparency in a distributed system
Transparency Description
Access Hide differences in data representation
(endianness, file naming, ...) and how a
resource
is accessed
Location Hide where a resource is physically located;
where
is http://www.prenhall.com/index.html?
(naming)
Migration Hide that a resource may move to another
location
Relocation Hide that a resource may be moved to
another location while in use; e.g., mobile users
using their wireless laptops
Replication Hide that a resource is replicated
Concurrency Hide that a resource may be shared by
several competitive users; a resource must be left 10
Openness in a Distributed System
a distributed system should be open
we need well-defined interfaces
interoperability
components of different origin can communicate
portability
components work on different platforms
another goal of an open distributed system is that it should be
flexible and extensible; easy to configure the system out of
different components; easy to add new components, replace
existing ones
an Open Distributed System is a system that offers services
according to standard rules that describe the syntax and
semantics of those services; e.g., protocols in networks
standards - a necessity
should allow competition in non-normative areas
11
in distributed systems, such services are often specified
through interfaces often described using an Interface Definition
Language (IDL)
specify only syntax: the names of the functions, types of
parameters, return values, possible exceptions, ...
12
scalability problems: performance problems caused by
limited capacity of servers and networks
Concept Example
Single server for all users-mostly for security
Centralized services
reasons
Centralized data A single on-line telephone book
Doing routing based on complete
Centralized algorithms
information
examples of scalability limitations
Scaling Techniques
how to solve scaling problems
the problem is mainly performance, and arises as a result of
limitations in the capacity of servers and networks (for
geographical scalability)
three possible solutions: hiding communication latencies,
distribution, and replication
13
a. Hide Communication Latencies
try to avoid waiting for responses to remote service
requests
let the requester do other useful job
i.e., construct requesting applications that use only
asynchronous communication instead of synchronous
communication; when a reply arrives the application is
interrupted
good for batch processing and parallel applications but
not for interactive applications
for interactive applications, move part of the job to the
client to reduce communication; e.g. filling a form and
checking the entries
14
(a) a server checking the correctness of field entries
(b) a client doing the job
e.g., shipping code is now supported in Web applications using Java
Applets
15
b. Distribution
e.g., DNS - Domain Name System
divide the name space into zones
for details, see later in Chapter 4 - Naming
17
1.3 Hardware and Software Concepts
Hardware Concepts
different classification schemes exist
multiprocessors - with shared memory
multicomputers - that do not share memory
can be homogeneous or heterogeneous
18
a single
backbone
a bus-based multiprocessor
bus-based multiprocessors are difficult to scale even with caches
two possible solutions: crossbar switch and omega network
20
Crossbar switch
divide memory into modules and connect them to the
processors with a crossbar switch
at every intersection, a crosspoint switch is opened and closed
to establish connection
problem: expensive; with n CPUs and n memories, n 2 switches
are required
21
Omega network
use switches with multiple input and output lines
drawback: high latency because of several switching
stages between the CPU and memory
22
Homogeneous Multicomputer Systems
also referred to as System Area Networks (SANs)
the nodes are mounted on a big rack and connected
through a high-performance network
could be bus-based or switch-based
bus-based
shared multiaccess network such as Fast Ethernet can be
used and messages are broadcasted
performance drops highly with more than 25-100 nodes
(contention)
23
switch-based
messages are routed through an interconnection network
two popular topologies: meshes (or grids) and
hypercubes
Hypercube
Grid
24
Heterogeneous Multicomputer Systems
most distributed systems are built on heterogeneous
multicomputer systems
the computers could be different in processor type,
memory size, architecture, power, operating system, etc.
and the interconnection network may be highly
heterogeneous as well
the distributed system provides a software layer to hide the
heterogeneity at the hardware level; i.e., provides
transparency
25
Software Concepts
OSs in relation to distributed systems
tightly-coupled systems, referred to as distributed OSs
(DOS)
the OS tries to maintain a single, global view of the
resources it manages
used for multiprocessors and homogeneous
multicomputers
loosely-coupled systems, referred to as network OSs
(NOS)
a collection of computers each running its own OS;
they work together to make their services and
resources available to others
used for heterogeneous multicomputers
Middleware: to enhance the services of NOSs so that a
better support for distribution transparency is provided
26
Summary of main issues
27
Distributed Operating Systems
two types
multiprocessor operating system: to manage the resources of a
multiprocessor
multicomputer operating system: for homogeneous multicomputers
Uniprocessor Operating Systems
separating applications from operating system code through a
microkernel
28
Multiprocessor Operating Systems
extended uniprocessor operating systems to support
multiple processors having access to a shared memory
a protection mechanism is required for concurrent access to
guarantee consistency
two synchronization mechanisms: semaphores and monitors
semaphore: an integer with two atomic operations down (if
s=0 then sleep; s := s-1) and up (s := s+1; wakeup a
sleeping process if any)
monitor: a programming language construct consisting of
procedures and variables that can be accessed only by the
procedures of the monitor; only a single process at a time
is allowed to execute a procedure
29
Multicomputer Operating Systems
processors can not share memory; instead communication is through
message passing
each node has its own
kernel for managing local resources
separate module for handling interprocessor communication
33
Services offered by network operating systems
remote login (rlogin)
remote file copy (rcp)
shared file systems through file servers
34
Middleware
a distributed operating system is not intended to handle a
collection of independent computers but provides
transparency and ease of use
a network operating system does not provide a view of a
single coherent system but is scalable and open
combine the scalability and openness of network operating
systems and the transparency and ease of use of distributed
operating systems
this is achieved through a middleware, another layer of
software
35
general structure of a distributed system as middleware
36
different middleware models exist
treat every resource as a file; just as in UNIX
through Remote Procedure Calls (RPCs) - calling a procedure on a remote machine
distributed object invocation
(details later in Chapter 2 - Communication)
middleware services
access transparency: by hiding the low-level message passing
naming: such as a URL in the WWW
distributed transactions: by allowing multiple read and write
operations to occur atomically
security
37
Middleware and Openness
in an open middleware-based distributed system, the
protocols used by each middleware layer should be the
same, as well as the interfaces they offer to applications
38
a comparison between multiprocessor operating systems,
multicomputer operating systems, network operating
systems, and middleware-based distributed systems
Distributed OS
Network Middleware
Item
Multiproc Multicomp OS -based OS
Degree of
Very High High Low High
transparency
Same OS on all nodes Yes Yes No No
Number of copies of
1 N N N
OS
Basis for Shared Model
Messages Files
communication memory specific
Global, Global,
Resource management Per node Per node
central distributed
Scalability No Moderately Yes Varies
Openness Closed Closed Open Open
39
1.4 The Client-Server Model
how are processes organized in a system
thinking in terms of clients requesting services from servers
40
Application Layering
no clear distinction between a client and a server; for
instance a server for a distributed database may act as a
client when it forwards requests to different file servers
three levels exist
the user-interface level: implemented by clients and
contains all that is required by a client; usually
through GUIs, but not necessarily
the processing level: contains the applications
the data level: contains the programs that maintain
the actual data dealt with
41
the general organization of an Internet search engine into three
different layers
Client-Server Architectures
how to physically distribute a client-server application across several
machines
Multitiered Architectures
42
Two-tiered architecture: alternative client-server organizations
43
three tiered architecture: an example of a server acting as a client
44
Modern Architectures
vertical distribution: when the different tiers correspond directly with
the logical organization of applications
horizontal distribution: physically split up the client or the server into
logically equivalent parts. e.g. Web server