1. Introduction toIntroduction to
Distributed SystemsDistributed Systems
V.V. SubrahmanyamV.V. Subrahmanyam
SOCIS, IGNOUSOCIS, IGNOU
Date: 29-02-08Date: 29-02-08
Time: 19-00 to 19-45Time: 19-00 to 19-45
2. ObjectivesObjectives
Processor CouplingProcessor Coupling
Loosely Coupled SystemsLoosely Coupled Systems
Tightly Coupled SystemsTightly Coupled Systems
Distributed SystemsDistributed Systems
Key featuresKey features
Design goals of Distributed SystemsDesign goals of Distributed Systems
Design issues involved in DistributedDesign issues involved in Distributed
SystemsSystems
3. Multiprocessor SystemsMultiprocessor Systems
Multiprocessing is a general term for theMultiprocessing is a general term for the
use of two or more CPUs for a computeruse of two or more CPUs for a computer
system.system.
Multiprocessing can vary with context,Multiprocessing can vary with context,
mostly as a function of how CPUs aremostly as a function of how CPUs are
defined.defined.
The term multiprocessing is sometimesThe term multiprocessing is sometimes
used to refer to the execution of multipleused to refer to the execution of multiple
concurrent s/w processes in a system asconcurrent s/w processes in a system as
opposed to a single process at any oneopposed to a single process at any one
instant.instant.
4. Contd…Contd…
Multiprogramming is moreMultiprogramming is more
appropriate to describe this concept,appropriate to describe this concept,
which is implemented mostly inwhich is implemented mostly in
software, whereas multiprocessing issoftware, whereas multiprocessing is
more appropriate to describe the usemore appropriate to describe the use
of multiple hardware CPUs.of multiple hardware CPUs.
A system can be bothA system can be both
multiprocessing andmultiprocessing and
multiprogramming, only one of themultiprogramming, only one of the
two, or neither of the two.two, or neither of the two.
5. Processor CouplingProcessor Coupling
Multiprocessor systems have moreMultiprocessor systems have more
than one processing unit sharingthan one processing unit sharing
memory/peripheral devices. Theymemory/peripheral devices. They
have greater computing power, andhave greater computing power, and
higher reliability. Multiprocessorhigher reliability. Multiprocessor
systems are classified into two:systems are classified into two:
• Tightly-coupledTightly-coupled::
• Loosely-coupled (distributed)Loosely-coupled (distributed): Each: Each
processor has its own memory and copyprocessor has its own memory and copy
of the Operating System.of the Operating System.
6. Tightly- Coupled SystemsTightly- Coupled Systems
Each processor is assigned a specific duty butEach processor is assigned a specific duty but
processors work in close association, possiblyprocessors work in close association, possibly
sharing one memory module.sharing one memory module.
Tightly-coupled multiprocessor systems containTightly-coupled multiprocessor systems contain
multiple CPUs that are connected at the bus level.multiple CPUs that are connected at the bus level.
These CPUs may have access to a central sharedThese CPUs may have access to a central shared
memory (SMP), or may participate in a memorymemory (SMP), or may participate in a memory
hierarchy with both local and shared memoryhierarchy with both local and shared memory
(NUMA).(NUMA). The IBM p690 RegattaThe IBM p690 Regatta is an example ofis an example of
a high end SMP system.a high end SMP system.
Mainframe systems with multiple processors areMainframe systems with multiple processors are
often tightly-coupled.often tightly-coupled.
7. Contd…Contd…
Tightly-coupled systems perform betterTightly-coupled systems perform better
and are physically smaller than loosely-and are physically smaller than loosely-
coupled systems, but have historicallycoupled systems, but have historically
required greater initial investments andrequired greater initial investments and
may depreciate rapidly.may depreciate rapidly.
Tightly-coupled systems tend to be muchTightly-coupled systems tend to be much
more energy efficient than clusters. This ismore energy efficient than clusters. This is
due to fact that considerable economiesdue to fact that considerable economies
can be realised by designing componentscan be realised by designing components
to work together from the beginning into work together from the beginning in
tightly-coupled systems.tightly-coupled systems.
8. Loosely-Coupled SystemsLoosely-Coupled Systems
Loosely-coupled multiprocessorLoosely-coupled multiprocessor
systems often referred to as clusterssystems often referred to as clusters
are based on multiple standaloneare based on multiple standalone
single or dual processor commoditysingle or dual processor commodity
computers interconnected via a highcomputers interconnected via a high
speed communication system.speed communication system.
A Linux BeowulfA Linux Beowulf is an example of ais an example of a
loosely-coupled system.loosely-coupled system.
9. Contd…Contd…
Nodes in a loosely-coupled systemNodes in a loosely-coupled system
are usually inexpensive commodityare usually inexpensive commodity
computers and can be recycled ascomputers and can be recycled as
independent machines uponindependent machines upon
retirement from the cluster.retirement from the cluster.
Loosely coupled systems are notLoosely coupled systems are not
much energy efficient whenmuch energy efficient when
compared with tightly coupled.compared with tightly coupled.
10. Multiprocessor Operating SystemsMultiprocessor Operating Systems
Multiprocessor operating systems aim to supportMultiprocessor operating systems aim to support
high performance through multiple CPUs.high performance through multiple CPUs.
An important goal is to make the number of CPUsAn important goal is to make the number of CPUs
transparent to the application.transparent to the application.
Achieving such transparency is relatively easyAchieving such transparency is relatively easy
because the communication between differentbecause the communication between different
(parts of) applications uses the same primitives(parts of) applications uses the same primitives
as those in multitasking uni-processor operatingas those in multitasking uni-processor operating
systems.systems.
The idea is that all communication is done byThe idea is that all communication is done by
manipulating data at shared memory locations,manipulating data at shared memory locations,
and that we only have to protect that dataand that we only have to protect that data
against simultaneous access. Protection is doneagainst simultaneous access. Protection is done
through synchronization primitives likethrough synchronization primitives like
semaphores and monitors.semaphores and monitors.
11. Distributed ComputingDistributed Computing
Distributed computing is the process ofDistributed computing is the process of
aggregating the power of severalaggregating the power of several
computing entities to collaboratively runcomputing entities to collaboratively run
a computational task in a transparenta computational task in a transparent
and coherent way, so that it appears asand coherent way, so that it appears as
a single, centralized system.a single, centralized system.
A distributed computer system is aA distributed computer system is a
loosely coupled collection ofloosely coupled collection of
autonomous computers connected by aautonomous computers connected by a
network using system software tonetwork using system software to
produce a single integrated computingproduce a single integrated computing
environment.environment.
12. Properties of Distributed SystemsProperties of Distributed Systems
Distributed computing consists of aDistributed computing consists of a
network if more or less independentnetwork if more or less independent
or autonomous nodes.or autonomous nodes.
The nodes doThe nodes do notnot share primaryshare primary
storage (i.e., RAM) or secondarystorage (i.e., RAM) or secondary
storage (i.e., disk)storage (i.e., disk)
A well designed distributed systemA well designed distributed system
does not crash if a node goes down.does not crash if a node goes down.
13. Contd…Contd…
If you are to perform a computingIf you are to perform a computing
task which is parallel in nature,task which is parallel in nature,
scaling your system is a lot cheaperscaling your system is a lot cheaper
by adding extra nodes, compared toby adding extra nodes, compared to
getting a faster single machine.getting a faster single machine.
Of course, if your processing task isOf course, if your processing task is
highly non-parallel (every resulthighly non-parallel (every result
depends on the previous), using adepends on the previous), using a
distributed computing system maydistributed computing system may
not be very beneficial.not be very beneficial.
14. Distributed OS Vs Networking OSDistributed OS Vs Networking OS
The machines supportingThe machines supporting
a distributed operatinga distributed operating
system are all runningsystem are all running
under a single operatingunder a single operating
system that spans thesystem that spans the
network.network.
Thus, the print spoolerThus, the print spooler
might, at some instant, bemight, at some instant, be
running on one machine,running on one machine,
while the file system iswhile the file system is
running on others, whilerunning on others, while
other machines areother machines are
running other parts of therunning other parts of the
system, and under somesystem, and under some
distributed operatingdistributed operating
systems, these softwaresystems, these software
parts may at timesparts may at times
migrate from machine tomigrate from machine to
machine.machine.
With network operatingWith network operating
systems, each machinesystems, each machine
runs an entire operatingruns an entire operating
system.system.
In contrast, withIn contrast, with
distributed operatingdistributed operating
systems, the entiresystems, the entire
system is itself distributedsystem is itself distributed
across the network.across the network.
15. Advantages of Distributed Systems overAdvantages of Distributed Systems over
Centralized SystemsCentralized Systems
Better price/performance than mainframesBetter price/performance than mainframes
More computing powerMore computing power (parallel processing)(parallel processing)
Some applications are inherentlySome applications are inherently
distributeddistributed
Improved reliability because system canImproved reliability because system can
survive crash of one processorsurvive crash of one processor
Incremental growth can be achieved byIncremental growth can be achieved by
adding one processor at a timeadding one processor at a time
Shared ownership facilitated.Shared ownership facilitated.
16. Advantages of Distributed SystemsAdvantages of Distributed Systems
over Isolated PCsover Isolated PCs
Shared utilization of resources.Shared utilization of resources.
Communication.Communication.
Better performance and flexibilityBetter performance and flexibility
than isolated personal computers.than isolated personal computers.
Simpler maintenance if comparedSimpler maintenance if compared
with individual PC’s.with individual PC’s.
17. Disadvantages of Distributed SystemsDisadvantages of Distributed Systems
Network performance parameters.Network performance parameters.
LatencyLatency: Delay that occurs after a send operation: Delay that occurs after a send operation
is executed before data starts to arrive at theis executed before data starts to arrive at the
destination computer.destination computer.
Data Transfer RateData Transfer Rate: Speed at which data can be: Speed at which data can be
transferred between two computers oncetransferred between two computers once
transmission has begun.transmission has begun.
Total network bandwidthTotal network bandwidth: Total volume of traffic: Total volume of traffic
that can be transferred across the network in athat can be transferred across the network in a
give time.give time.
Dependency on reliability of the underlyingDependency on reliability of the underlying
network.network.
Higher security risk due to more possible accessHigher security risk due to more possible access
points for intruders and possible communicationpoints for intruders and possible communication
with insecure systems.with insecure systems.
Software complexity.Software complexity.
18. Design GoalsDesign Goals
In order to design a good distributedIn order to design a good distributed
system. There are six key design goals.system. There are six key design goals.
They are:They are:
ConcurrencyConcurrency
ScalabilityScalability
OpennessOpenness
Fault ToleranceFault Tolerance
Privacy and AuthenticationPrivacy and Authentication
TransparencyTransparency
19. Design IssuesDesign Issues
There are certain design issues to beThere are certain design issues to be
considered for distributed systems.considered for distributed systems.
They are:They are:
NamingNaming
CommunicationCommunication
Software StructureSoftware Structure
Workload AllocationWorkload Allocation
Consistency MaintenanceConsistency Maintenance