Chapter One

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 42

Introduction to Distributed

Systems:

By Ambachew M.
Definition of Distributed
“A
Systems
system in which hardware or software
components located at networked computers
communicate and coordinate their actions
only by message passing.” [Coulouris]
“A distributed system is a collection of
independent computers that appear to the
users of the system as a single computer.”
[Tanenbaum]
“A distributed system is one that stops you
getting any work done when a machine
you’ve never even heard of crashes.” –
[Leslie Lamport]
Advantages of Distributed Systems
over Centralized Systems
• Economics: a collection of microprocessors offer a better
price/performance than mainframes. Low price/performance
ratio: cost effective way to increase computing power.
• Speed: a distributed system may have more total computing
power than a mainframe. Ex. 10,000 CPU chips, each running
at 50 MIPS. Not possible to build 500,000 MIPS single processor
since it would require 0.002 nsec instruction cycle. Enhanced
performance through load distributing.
• Inherent distribution: Some applications are inherently
distributed. Ex. a supermarket chain.
• Reliability: If one machine crashes, the system as a whole can
still survive. Higher availability and improved reliability.
• Incremental growth: Computing power can be added in small
increments. Modular expandability
• Another deriving force: the existence of large number of
personal computers, the need for people to collaborate and
share information.
Advantages of Distributed Systems
over Independent PCs
– Data sharing: allow many users
to access to a common data base
– Resource Sharing: expensive
peripherals like color printers
– Communication: enhance
human-to-human communication,
e.g., email, chat
– Flexibility: spread the workload
over the available machines
Disadvantages of Distributed Systems
– Software: difficult to develop
software for distributed systems
– Network: saturation, lossy
transmissions
– Security: easy access also applies
to secrete data
Cont..
Example Distributed Systems:
– Cluster:
• “A type of parallel or distributed processing
system, which consists of a collection of
interconnected stand-alone computers
cooperatively working together as a single,
integrated computing resource” [Buyya].
– Cloud:
• “a type of parallel and distributed system
consisting of a collection of interconnected
and virtualised computers that are
dynamically provisioned and presented as
one or more unified computing resources
based on service-level agreements
established through negotiation between the
service provider and consumers” [Buyya].
Goals of Distributed Systems
• Transparency
• Flexibility
• Reliability
• Performance
• Scalability
1. Transparency
• How to achieve the single-system image,
i.e., how to make a collection of
computers appear as a single computer.
• Hiding all the distribution from the users
as well as the application programs can
be achieved at two levels:
1)hide the distribution from users
2)at a lower level, make the system look
transparent to programs.
Types of Transparency
Transparency Description
Hide differences in data representation and how
Access
a resource is accessed
Location Hide where a resource is located
Hide that a resource may move to another
Migration
location
Hide that a resource may be moved to another
Relocation
location while in use
Replication Hide that a resource is replicated
Hide that a resource may be shared by several
Concurrency
competitive users
Failure Hide the failure and recovery of a resource
Hide whether a (software) resource is in
Persistence
memory or on disk

Different forms of transparency in a distributed system


2. Flexibility
• Make it easier to change
• Monolithic Kernel: systems calls are
trapped and executed by the kernel.
All system calls are served by the
kernel, e.g., UNIX.
• Microkernel: provides minimal
services.
E.g., Mach can support multiple file
systems, multiple system interfaces.
3. Reliability
• Distributed system should be
more reliable than single system.
– Availability: fraction of time the system is
usable. Redundancy improves it.
– Need to maintain consistency
– Need to be secure
– Fault tolerance: need to mask failures,
recover from errors.
4. Performance
• Without gain on this, why bother
with distributed systems.
• Performance loss due to
communication delays:
– fine-grain parallelism: high degree of
interaction
– coarse-grain parallelism
• Performance loss due to making
the system fault tolerant.
5. Scalability
• Systems grow with time or become obsolete.
Techniques that require resources linearly in terms
of the size of the system are not scalable.
e.g., broadcast based query won't work for large
distributed systems.
• Examples of bottlenecks
o Centralized components: a single mail
server
o Centralized tables: a single URL address
book
o Centralized algorithms: routing based on
complete information
Scaling Techniques

1. Hiding communication latencies


2. Distribution
3. Replication
Scaling Techniques (1)

1.4

The difference between letting:


a) a server or
b) a client check forms as they are being filled
Scaling Techniques (2)

1.5

An example of dividing the DNS name space into zones


Hardware Concepts

1.6

Different basic organizations and memories in distributed computer


systems
Software Concepts
System Description Main Goal
Hide and
Tightly-coupled OS for multi-processors manage
DOS
and homogeneous multicomputers hardware
resources
Offer local
Loosely-coupled OS for heterogeneous
NOS services to
multicomputers (LAN and WAN)
remote clients
Provide
Middlewar Additional layer atop of NOS
distribution
e implementing general-purpose services
transparency
An overview of
• DOS (Distributed Operating Systems)
• NOS (Network Operating Systems)
• Middleware
Multicomputer Operating
Systems (1)

1.14

General structure of a multicomputer operating system


Multicomputer Operating
Systems (2)

1.15

Alternatives for blocking and buffering in message


passing
Multicomputer Operating
Systems (3)
Reliable comm.
Synchronization point Send buffer
guaranteed?
Block sender until buffer not full Yes Not necessary

Block sender until message sent No Not necessary

Block sender until message received No Necessary

Block sender until message delivered No Necessary

Relation between blocking, buffering, and reliable


communications
Distributed Shared Memory
Systems (1)
a) Pages of address
space distributed
among four
machines

b) Situation after
CPU 1 references
page 10

c) Situation if page
10 is read only
and replication is
used
Distributed Shared Memory
Systems (2)

1.18

False sharing of a page between two independent


processes
Network Operating System (1)

1-19

General structure of a network operating system


Network Operating System (2)

1-20

Two clients and a server in a network operating system


Positioning Middleware

1-22

General structure of a distributed system as middleware


Middleware and Openness

1.23

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
Comparison between 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
Resource Global, Global,
Per node Per node
management central distributed
Scalability No Moderately Yes Varies
Openness Closed Closed Open Open

A comparison between multiprocessor OS, multicomputer


OS, network OS, and middleware based distributed systems
Clients and Servers

1.25

General interaction between a client and a server


Processing Level

1-28

The general organization of an Internet


search engine into three different layers
Multitiered Architectures (1)

1-29

Alternative client-server organizations (a) – (e)


Multitiered Architectures (2)

1-30

An example of a server acting as a client


Modern Architectures

1-31

An example of horizontal distribution of a Web service


Cont..
Business Example and
Challenges
Online bookstore (e.g. in the World
Wide Web)
– Customers can connect their computer
to your computer (web server):
• Browse your inventory
• Place orders
•…
Business Example – Challenges
What if
I
– Your customer uses a completely different
hardware? (PC, MAC,…)
– … a different operating system? (Windows, Unix,…)
– … a different way of representing data? (ASCII,
EBCDIC,…)
– Heterogeneity
Or
– You want to move your business and computers to
the Caribbean (because of the weather)?
– Your client moves to the Caribbean (more likely)?
– Distribution transparency
Business Example – Challenges
What if
II
– Two customers want to order the same
item at the same time?
– Concurrency
Or
– The database with your inventory
information crashes?
– Your customer’s computer crashes in
the middle of an order?
– Fault tolerance
Business Example – Challenges
What if
III
– Someone tries to break into your
system to steal data?
– … sniffs for information?
– … your customer orders something and
doesn’t accept the delivery saying he didn’t?
– Security
Or
– You are so successful that millions of people
are visiting your online store at the same
time?
– Scalability
Business Example – Challenges
IV
When building the system…
– Do you want to write the whole
software on your own (network,
database,…)?
– What about updates, new technologies?
– Reuse and Openness (Standards)
Overview Challenges I
Heterogeneity
– Heterogeneous components must be able to
interoperate
Distribution transparency
– Distribution should be hidden from the user as much
as possible
Fault tolerance
– Failure of a component (partial failure) should not
result in failure of the whole system
Scalability
– System should work efficiently with an increasing
number of users
– System performance should increase with inclusion of
additional resources
Overview Challenges II
Concurrency
– Shared access to resources must be
possible
Openness
– Interfaces should be publicly available
to ease inclusion of new components
Security
– The system should only be used in the
way intended
The End

Thanks

You might also like