Distributed Computing
© Oxford University Press 2013. All rights reserved.
Chapter 1
Basic Distributed System
Concepts
© Oxford University Press 2013. All rights reserved.
OUTLINE
• Introduction
• Distributed computing
models
• Software concepts
• Issues in designing
distributed systems
• Client–server model
© Oxford University Press 2013. All rights reserved.
What is a Distributed System?
Tanenbaum’s definition of a distributed system:
“A distributed system is a collection of
independent computers that appear to the users of
the system as a single coherent system.”
© Oxford University Press 2013. All rights reserved.
An Example of a Distributed System
• Nationalized Bank with multiple Branch Offices
© Oxford University Press 2013. All rights reserved.
Requirements of Distributed Systems
• Security and reliability
• Consistency of replicated data
• Concurrent transactions (operations which involve accounts in
different banks; simultaneous access from several users, etc.)
• Fault tolerance
© Oxford University Press 2013. All rights reserved.
Architectures for Distributed Systems
• Shared memory architectures / Tightly coupled systems
➢ easier to program
• Distributed memory architectures / Loosely coupled systems
➢ offer a superior price performance ratio and are
scalable
© Oxford University Press 2013. All rights reserved.
Architectures for Distributed Systems
© Oxford University Press 2013. All rights reserved.
Distributed Computing Models
• Workstation model
• Workstation–server model
• Processor-pool model
© Oxford University Press 2013. All rights reserved.
Workstation Model
• Consists of network of personal computers
• Each one with its own hard disk and local file system
• Interconnected over the network
© Oxford University Press 2013. All rights reserved.
Workstation-server Model
• Consists of multiple workstations coupled with powerful
servers with extra hardware to store the file systems and
other software like databases
© Oxford University Press 2013. All rights reserved.
Processor-pool Model
• Consists of multiple processors: a pool of processors and a
group of workstations
© Oxford University Press 2013. All rights reserved.
Advantages of Distributed Systems
• Inherently distributed applications
• Information sharing among
geographically distributed users
• Resource Sharing
• Better price performance ratio
• Shorter response time & higher
throughput
• Higher reliability and availability against
component failures
• Extensibility and Incremental Growth
• Better Flexibility
© Oxford University Press 2013. All rights reserved.
Disadvantages of Distributed Systems
• Relevant software does not exist currently
• Security poses a problem due to easy access to all
data
• Networking saturation may cause a hurdle in data
transfer
© Oxford University Press 2013. All rights reserved.
Software Concepts
• Network Operating System (NOS)
• Distributed Operating System (DOS)
• Multiprocessor Time Sharing System
© Oxford University Press 2013. All rights reserved.
Network Operating System (NOS)
• Build using a distributed system from a network of workstations
connected by high speed network.
• Each workstation is an independent computer with its own
operating system, memory and other resources like hard disks, file
system and databases
© Oxford University Press 2013. All rights reserved.
Distributed Operating System (DOS)
• Enables a distributed system to behave like a virtual
uniprocessor even though the system operates on a collection
of machines.
• Characteristics
✓ enabling Inter process communication
✓ Uniform process management mechanism
✓ Uniform and visible file system
✓ Identical kernel implementation
✓ Local control of machines
✓ handling scheduling issues
© Oxford University Press 2013. All rights reserved.
Multiprocessor Time Sharing System
• Combination of tightly coupled software and tightly coupled
hardware with multiple CPUs projecting a uniprocessor image.
• Tasks are queued in shared memory and are scheduled to be
executed in time shared mode on available processors.
© Oxford University Press 2013. All rights reserved.
Comparison of Different Operating
Systems
Software Concepts
© Oxford University Press 2013. All rights reserved.
Issues in Designing Distributed Systems
• Transparency
• Flexibility
• Reliability
• Performance
• Scalability
• Security
© Oxford University Press 2013. All rights reserved.
Transparency
Transparencies required for Distributed Systems
© Oxford University Press 2013. All rights reserved.
Replication Transparency
Locating Replicated File stored on any server
© Oxford University Press 2013. All rights reserved.
Flexibility
• Monolithic kernel approach
• Microkernel approach
© Oxford University Press 2013. All rights reserved.
Monolithic Kernel Approach
• Uses the minimalist, modular approach with accessibility to
other services as needed
© Oxford University Press 2013. All rights reserved.
Microkernel Approach
• Uses the kernel does it all approach with all functionalities
provided by the kernel irrespective whether all machines use
it or not
© Oxford University Press 2013. All rights reserved.
Monolithic versus Microkernel Approach
© Oxford University Press 2013. All rights reserved.
Reliability
• Availability in case of Hardware failure
• Data recovery in case of Data failure
• Maintain consistency in case of replicated data
© Oxford University Press 2013. All rights reserved.
Performance
Metrics are
– Response time
– Throughput
– System utilization
– Amount of network capacity used
© Oxford University Press 2013. All rights reserved.
Scalability
• Techniques to handle scalability issues
• hide communication latencies
• hide distribution
• hide replication
© Oxford University Press 2013. All rights reserved.
Hide Communication Latencies
© Oxford University Press 2013. All rights reserved.
Hide Distribution
© Oxford University Press 2013. All rights reserved.
Security
• Confidentiality means protection against unauthorized access
• Integrity implies protection of data against corruption
• Availability means protection against failure always accessible
© Oxford University Press 2013. All rights reserved.
Client-Server Model
© Oxford University Press 2013. All rights reserved.
Client-Server Addressing Techniques
• Machine addressing
• Process addressing
• Name server addressing
© Oxford University Press 2013. All rights reserved.
Client-Server Addressing Techniques
© Oxford University Press 2013. All rights reserved.
Client-Server Implementation
Messages for client server interaction
– Request, Reply, Acknowledge, Are you Alive, I am Alive
© Oxford University Press 2013. All rights reserved.
Differentiation between the Client
and the Server
• User
interface
level
• Processing
level
• Data level
© Oxford University Press 2013. All rights reserved.
Client-Server Architecture
© Oxford University Press 2013. All rights reserved.
Client-Server Architecture
© Oxford University Press 2013. All rights reserved.