Sei sulla pagina 1di 7

Distributed Systems F 1 - 1 Distributed Systems F 1 - 2

Course Information

Web page: http://www.ida.liu.se/~TDDD25

DISTRIBUTED SYSTEMS
(TDDD25)
Examination: written

Petru Eles

Lecture notes: available from the web page, latest 24


Institutionen fr Datavetenskap (IDA) hours before the lecture.
Linkpings Universitet

email: petru.eles@liu.se
http://www.ida.liu.se/~petel71/
phone: 28 1396 Text book:
B building, 329:220
George Coulouris, Jean Dollimore, Tim Kindberg:
"Distributed Systems - Concepts and Design",
Addison Wesley Publ. Comp., 4th edition, 2005.
George Coulouris, Jean Dollimore, Tim Kindberg,
Gordon Blair: "Distributed Systems - Concepts and
Design", Addison Wesley Publ. Comp., 5th edition,
2011.

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH

Distributed Systems F 1 - 3 Distributed Systems F 1 - 4

Course Information (contd) DISTRIBUTED SYSTEMS

Basic Issues

Labs&Lessons:

1. What is a Distributed System?

Ivan Ukhov
Institutionen fr Datavetenskap (IDA) 2. Examples of Distributed Systems
email: ivan.ukhov@liu.se
B building, 329:228
3. Advantages and Disadvantages

Adrian Horga 4. Design Issues with Distributed Systems


Institutionen fr Datavetenskap (IDA)
email: adrian.horga@liu.se
B building, 329:198 5. Course Topics

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH


Distributed Systems F 1 - 5 Distributed Systems F 1 - 6

What is a Distributed System? Examples of Distributed Systems

Network of workstations
A distributed system is a collection of autonomous
computers linked by a computer network that appear to
the users of the system as a single computer. Workstations

Some comments:

System architecture: the machines are


autonomous; this means they are computers which, Local area network
in principle, could work independently;

The users perception: the distributed system is


perceived as a single system solving a certain
problem (even though, in reality, we have several Gateway to
Wide Area
computers placed in different locations). Network
File servers

By running a distributed system software the computers


are enabled to: Personal workstations + processors not assigned to
specific users.
- coordinate their activities
Single file system, with all files accessible from all
- share resources: hardware, software, data. machines in the same way and using the same
path name.
For a certain command the system can look for the
best place (workstation) to execute it.

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH

Distributed Systems F 1 - 7 Distributed Systems F 1 - 8

Examples of Distributed Systems (contd) Examples of Distributed Systems (contd)

Automatic banking (teller machine) system


The cloud
Bank_2 data Bank_2 backup
Teller
machines Services

Clients

Applications

Internet

Storage

Computation
Teller
machines
Bank_1 data Bank_1 backup

Primary requirements: security and reliability. Computing as a utility: application, storage,


Consistency of replicated data. computing services; pay on per-usage basis.
Concurrent transactions (operations which involve Main concerns: scaling, performance, security/
accounts in different banks; simultaneous access reliability.
from several users, etc).
Fault tolerance

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH


Distributed Systems F 1 - 9 Distributed Systems F 1 - 10

Examples of Distributed Systems (contd)

Automotive system (a distributed real-time system)

Actuators Sensors X-by wire Examples of Distributed Systems (contd)

Input/Output Adaptive
FPGA Anti-lock cruise
breaking control
RAM Distributed Real-Time Systems
CPU
CACHE
Network Interf.
Synchronization of physical clocks
Gateway
Safety critical network Scheduling with hard time constraints

Real-time communication
Engine control Trottle control
Fault tolerance

Gateway
Non-safety critical high-speed network

Non-safety critical low-speed network


Entertainment network

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH

Distributed Systems F 1 - 11 Distributed Systems F 1 - 12

Why do we Need Them? Disadvantages of Distributed Systems


Advantages of Distributed Systems

Performance: very often a collection of processors can


provide higher performance (and better Difficulties of developing distributed software: how
price/performance ratio) than a should operating systems, programming
centralized computer. languages and applications look like?

Distribution: many applications involve, by their nature,


spatially separated machines (banking,
commercial, automotive system). Networking problems: several problems are created by
the network infrastructure, which have to
Reliability (fault tolerance): if some of the machines be dealt with: loss of messages,
crash, the system can survive. overloading, ...

Incremental growth: as requirements on processing


power grow, new machines can be added
incrementally. Security problems: sharing generates the problem of
data security.
Sharing of data/resources: shared data is essential to
many applications (banking, computer-
supported cooperative work, reservation
systems); other resources can be also
shared (e.g. expensive printers).

Communication: facilitates human-to-human


communication.

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH


Distributed Systems F 1 - 13 Distributed Systems F 1 - 14

Design Issues with Distributed Systems Transparency

How to achieve the single system image?


Design issues that arise specifically from the distributed
nature of the application: How to "fool" everyone into thinking that the collection
of machines is a "simple" computer?

Transparency

Communication Access transparency


- local and remote resources are accessed using
Performance & scalability identical operations.

Heterogeneity Location transparency


- users cannot tell where hardware and software
Openness resources (CPUs, files, data bases) are locat-
ed; the name of the resource shouldnt encode
the location of the resource.
Reliability & fault tolerance
Migration (mobility) transparency
Security
- resources should be free to move from one
location to another without having their names
changed.

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH

Distributed Systems F 1 - 15 Distributed Systems F 1 - 16

Transparency (contd) Communication

Replication transparency
- the system is free to make additional copies of
files and other resources (for purpose of Components of a distributed system have to
performance and/or reliability), without the communicate in order to interact. This implies
users noticing. support at two levels:
Example: several copies of a file; at a certain
request that copy is accessed which is the 1. Networking infrastructure (interconnections &
closest to the client. network software).

Concurrency transparency
2. Appropriate communication primitives and models
- the users will not notice the existence of other and their implementation:
users in the system (even if they access the
same resources). communication primitives:
- send
message passing
Failure transparency - receive
- applications should be able to complete their - remote procedure call (RPC)
task despite failures occurring in certain communication models
components of the system. - client-server communication: implies a
message exchange between two proc-
Performance transparency esses: the process which requests a serv-
ice and the one which provides it;
- load variation should not lead to performance - group muticast: the target of a message is
degradation. a set of processes, which are members of
This could be achieved by automatic a given group.
reconfiguration as response to changes of the
load; it is difficult to achieve.

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH


Distributed Systems F 1 - 17 Distributed Systems F 1 - 18

Performance and Scalability Heterogeneity

Several factors are influencing the performance of a


distributed system: Distributed applications are typically heterogeneous:
- different hardware: mainframes, workstations,
The performance of individual workstations. PCs, servers, etc.;
- different software: UNIX, MS Windows, IBM OS/2,
The speed of the communication infrastructure. Real-time OSs, etc.;
- unconventional devices: teller machines,
Extent to which reliability (fault tolerance) is telephone switches, robots, manufacturing
provided (replication and preservation of coherence systems, etc.;
imply large overheads). - diverse networks and protocols: Ethernet,
FDDI, ATM, TCP/IP, Novell Netware, etc.
Flexibility in workload allocation: for example, idle
processors (workstations) could be allocated
automatically to a users task.
The solution
Middleware, an additional software layer to mask
Scalability
heterogeneity
The system should remain efficient even with a
significant increase in the number of users and
resources connected:
- cost of adding resources should be reasonable;
- performance loss with increased number of
users and resources should be controlled;
- software resources should not run out (number
of bits allocated to addresses, number of
entries in tables, etc.)

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH

Distributed Systems F 1 - 19 Distributed Systems F 1 - 20

Openness Openness (contd)

Software Architecture:
One of the important features of distributed systems
is openness and flexibility:
- every service is equally accessible to every
client (local or remote);
- it is easy to implement, install and debug new
services;
Applications & Services
- users can write and install their own services.

Middleware

Key aspect of openness:


- Standard interfaces and protocols (like Internet Operating System
communication protocols) "the platform"
- Support of heterogeneity (by adequate
middleware, like CORBA) Hardware: Computer&Network

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH


Distributed Systems F 1 - 21 Distributed Systems F 1 - 22

Openness (contd) Reliability and Fault Tolerance

One of the main goals of building distributed systems


is improvement of reliability.
The same, looking at two distributed nodes:

Availability: If machines go down, the system should work


with the reduced amount of resources.
There should be a very small number of critical
resources (single points of failure);
Applications & Services
critical resources: resources which have to be up in
order the distributed system to work.
Key pieces of hardware and software (critical
Middleware
resources) should be replicated if one of them
fails another one takes up - redundancy.
platform 1

Operating Operating
platform 2

System System Data on the system must not be lost, and copies stored
redundantly on different servers must be kept consistent.
Hardware: Hardware: The more copies kept, the better the availability, but
Comp.&Netw. Comp.&Netw. keeping consistency becomes more difficult.
Node 1 Node 2
Fault-tolerance is a main issue related to reliability: the
system has to detect faults and act in a reasonable way:
mask the fault: continue to work with possibly
reduced performance but without loss of data/
information.
fail gracefully: react to the fault in a predictable way
and possibly stop functionality for a short period,
but without loss of data/information.

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH

Distributed Systems F 1 - 23 Distributed Systems F 1 - 24

Security Course Topics at a Glance

Security of information resources: Basics


Introduction
1. Confidentiality Models of Distributed Systems
Protection against disclosure to unauthorised person Communication in Distributed Systems

2. Integrity
Middleware
Protection against alteration and corruption
Distributed Heterogeneous Applications and CORBA
3. Availability Peer-to-Peer Systems
Keep the resource accessible
Theoretical Aspects/Distributed Algorithms
Distributed systems should allow Time and State in Distributed Systems
communication between programs/users/ Distributed Mutual Exclusion
resources on different computers. Election and Agreement

Distributed Data and Fault Tolerance


Replication
Security risks associated with free access. Recovery and Fault Tolerance

Distributed Real-Time Systems


The appropriate use of resources by different users has
to be guaranteed.

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH


Distributed Systems F 1 - 25 Distributed Systems F 1 - 26

Course Topics Course Topics (contd)

Introduction
Distributed Mutual Exclusion
- just finished!
- Mutual exclusion in distributes systems
Models of distributed systems - Non-token based algorithms
Communication in Distributed Systems - Token based algorithms
- Message passing and the client/server model - Distributed elections
- Remote Procedure Call
- Group Communication Replication
- Publish-Subscribe Systems - Motivation for replication
- Consistency and ordering
Distributed Heterogeneous Applications and CORBA - Total and causal ordering
- Heterogeneity in distributed systems - Update protocols and voting
- Middleware
- Objects in distributed systems Recovery and Fault Tolerance
- The CORBA approach
- Transaction recovery
Peer-to-Peer Systems - Checkpointing and recovery
- Basic design issues - Fault tolerance in distributed systems
- The Napster file sharing system - Hardware and software redundancy
- BitTorrent - Byzantine agreement

Time and State in Distributed Systems Distributed Real-Time Systems


- Time in distributed systems - Physical Clocks
- Logical clocks & Vector clocks - Clock Synchronization
- Causal ordering of messages - Real-Time Scheduling
- Global states and state recording - Real-Time Communication

Petru Eles, IDA, LiTH Petru Eles, IDA, LiTH

Potrebbero piacerti anche