0% found this document useful (0 votes)
22 views41 pages

Ds 01

The document outlines the course IT-503: Distributed System, aimed at M.Tech 1st Semester students, covering objectives, syllabus, evaluation plan, and definitions of distributed systems. It discusses design issues, advantages, disadvantages, and examples of distributed systems, emphasizing the importance of communication, performance, scalability, and security. Key references and a detailed evaluation plan are also provided, highlighting the components and challenges of distributed systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views41 pages

Ds 01

The document outlines the course IT-503: Distributed System, aimed at M.Tech 1st Semester students, covering objectives, syllabus, evaluation plan, and definitions of distributed systems. It discusses design issues, advantages, disadvantages, and examples of distributed systems, emphasizing the importance of communication, performance, scalability, and security. Key references and a detailed evaluation plan are also provided, highlighting the components and challenges of distributed systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 41

IT-503 : Distributed System

L-T- P: 3-0-0 3

Class Schedule:
Tues: 12.05 -01.00
Wed: 12.05 -01.00
Thurs: 12.05 -01.00

M.Tech 1st Sem


Objectives

To understand the state-of-the-art in different


existing Distributed Systems including
architecture, protocols and distributed
algorithms.
Syllabus
• Characterization of Distributed Systems, Design issues and user
requirements.
• Interprocess Communication - Synchronous and Asynchronous,
Client-server communication, Group communication.
• Remote Procedure Call (RPC) - Design issues & Implementation.
• Distributed System Design issues & Implementation.
• File Services Design issues, Implementations and case studies.
• Name Service-Design issues and case studies.
• Time and Co-ordination Physical & Logical Clocks, Distributed
Co-ordination.
• Replication issues and implementations.
• Shared data and Transactions, Distributed transactions,
concurrency control.
• Recovery and Fault Tolerance.
• Security-Design issues and case studies.
References
1. Coulouris, Dollimore and Kindberg, Distributed
Systems-Concepts and Design, Pearson Education
Asia, 3rd Edition,2002
2. P K Sinha, Distibuted Operating System, PHI, IEEE
Press
3. Singhal and Shivaratri, Advanced Concepts in
Operating Systems, TMH, 2001
4. Tanenbaum and Steen, Distributed Systems: Principles
and Paradigms, Pearson Education,2004
5. Gerard Tel, Distributed Algorithms, Cambridge Univ
Press, 2nd Edition,2004
Evaluation Plan

slno Component marks


1 End Term Exam 100
2 Mid Term Exam 50
3 Class Test/Term paper (seminar, 50
report)/Assignment
Total : 200
Topic 1
• Definitions
• Motivations
• Consequences
• Examples of DS
• Advantages and Disadvantages of DS
• Design Challenges/Issues
What is a distributed system?
• A collection of independent computers that
appear to the users as a single computer.
(Andrew Tannenbaum)
• Autonomous computers.
• Many components
– connected by a network
– sharing resources.
– software specifically designed to provide an
integrated computing facility
Contd… (Coulouris, et al)
• System of networked computers that
communicate and coordinate their actions only
by passing messages
• Concurrent execution of programs
• No global clock
• Components fail independently of one another
By running a distributed system software the computers
are enabled to:
- coordinate their activities
- share resources: hardware, software, data.
Another definition (Lamport)
• “You know you have a distributed system when
the crash of a computer you’ve never heard of
stops you from getting any work done.”
– inter-dependencies
– shared state
– independent failure of components
Enslow’s Definition

• DS = Distributed (h/w + control + data)


• A system could be classified as a DS if all 3
categories (h/w, control & data) reach a certain
degree of decentralization.
Motivation
• Two Advances in the mid 80s
– Powerful micro-processor:
• 8-bit, 16-bit, 32-bit, 64-bit
• x86 family, 68k family, Alpha chip
• Clock rate: 8Mhz up to 600+Mhz
– Computer network
• Local Area Network (LAN), Wide Area Network (WAN),
MAN, Wireless Network
• Network type:  Ethernet, Token-bus, Token-ring, ATM,
Fast-Ethernet, Gigabit Ethernet, Fibre Channel
• Transfer rate: 64 kbps up to 1Gbps
Motivation for Distribution
• People & information are distributed

• Functional distribution: computers have different functional


capabilities.
– Client / server
– Host / terminal
– Data gathering / data processing

Inherent distribution stemming from the application domain, e.g.


– cash register and inventory systems for supermarket chains
– computer supported collaborative work
Contd…
• Share resources
sharing of resources with specific functionalities
–Data sharing: Allow many users access to a common database
–Device sharing: Allow many users to share expensive peripherals.

• Performance & cost


Load distribution / balancing: assign tasks to
processors such that the overall system performance is
optimized.
Replication of processing power: independent processors
working on the same task
Economics: collections of microprocessors offer a
better price/performance ratio than large mainframes
Contd…

• Personalise environments
• Location independence
• Modularity & expandability
• Availability & reliability
• Scalability
Communication: Make human-to-human communication easier
-- Email.
Consequences
Distributed systems are concurrent systems

– Every software or hardware component is


autonomous
– Components execute concurrent tasks
– Synchronization and coordination by
message passing
– Sharing of resources
Deadlocks
Contd…
Absence of a global clock
– Due to message passing there are limits on the
precision with which processes in a distributed system
can synchronize their clocks (physical clock
synchronization)

Absence of a global state


– In the general case, there is no single process in the
distributed system that would have a knowledge of
the current global state of the system
Due to concurrency and message passing communication
Contd…
Specific failure modes
– Processes run autonomously, in isolation
Failures of individual processes may remain
undetected
Individual processes may be unaware of
failures in the system context
Examples of Distributed Systems

• A number of workstations plus a pool of


processors in a department’s network.

If the system as a whole looked and acted like a single


processor timesharing system, it would qualify as a
distributed system.
Examples (cont’d)

• The Internet
– Heterogeneous network of computers and
applications
– Implemented through the Internet Protocol Stack
– Typical configuration:
A typical portion of the Internet

intranet 

 ISP

backbone

satellite link

desktop computer:
server:
network link:
Examples (cont’d)
• Intranets
– Locally administered network
– Usually proprietary (e.g., the University campus
network)
– Interfaces with the Internet
Firewalls
– Provides services internally and externally
A typical intranet

email server Desktop


computers
print and other servers

Local area
Web server network

email server
print
File server
other servers
the rest of
the Internet
router/firewall
Examples (cont’d)
• Distributed Multimedia-Systems

Heterogeneous data sources and sinks that need to be


synchronized in real time
* Video * Audio * Text
Examples
Video-conferencing
Video and audio on demand
Examples (cont’d)
• Embedded systems

– Avionics control systems


Flight management systems in aircraft

– Automotive control systems


Mercedes S-Klasse automobiles these
days are equipped with 50+ autonomous
embedded processors
Examples (cont’d)
• Network File Systems
– Architecture to access file systems across a network
– Famous example
Network File System (NFS), originally developed by SUN
Microsystems for remote access support in a UNIX context
The World Wide Web
– Open client-server architecture implemented on top of the
Internet
– Shared resouces
Information, uniquely identified through a Uniform
Resource Locator (URL)
Examples (cont’d)
• Automated banking systems
• 1 central office:
– Clients at different ATMs may access the same
accounts simultaneously
• 2 central offices:
– ATMs use nearest central office
– Each office acts as a backup of the other
– Outstanding transactions ?
– Network failures ?
Advantages of Distributed Systems
• Performance: very often a collection of
processors can provide higher performance
(and better price/performance ratio) than a
centralized computer.
• Distribution: many applications involve, by their
nature, spatially separated machines
(banking, commercial, automotive system ).
• Reliability (fault tolerance): if some of the
machines crash, the system can survive .
• Incremental growth: as requirements on
processing power grow, new machines can be
added incrementally.
Advantages of Distributed Systems
• 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.
Disadvantages of Distributed Systems

• Difficulties of developing distributed software:


how should operating systems, programming
languages and applications look like?
• Networking problems: several problems are
created by the network infrastructure, which have
to be dealt with: loss of
messages,overloading, ...
• Security problems: sharing generates the
problem of data security.
Design Issues with Distributed Systems
Design issues that arise specifically from the
distributed nature of the application:
– Transparency
– Communication
– Performance & scalability
– Heterogeneity
– Openness
– Reliability & fault tolerance
– Security
Transparency
– How to achieve the single system image?
– How to "fool" everyone into thinking that the
collection of machines is a "simple" computer?
• Access transparency: local and remote resources are
accessed using identical operations.
• Location transparency: users cannot tell where
hardware and software resources (CPUs, files, data bases)
are located; the name of the resource shouldn’t encode the
location of the resource.
• Migration (mobility) transparency: resources should be free to
move from one location to another without having their names changed .
Transparency (Contd..)
• Replication transparency: the system is free to make
additional copies of files and other resources (for purpose of
performance and/or reliability), without the users noticing.
• Concurrency transparency: the users will not notice the
existence of other users in the system (even if they access
the same resources).
• Failure transparency: applications should be able to
complete their task despite failures occurring in certain
components of the system.
• Performance transparency: load variation should not
lead to performance degradation. This could be achieved by
automatic reconfiguration as response to changes of the
load; it is difficult to achieve.
• Scalability transparency: the system should be able to add
users without degrading its performance
Communication
• Components of a distributed system have to communicate
in order to interact. This implies support at two levels:
– Networking infrastructure (interconnections & network software).
– Appropriate communication primitives and models and their
implementation:
• communication primitives:
- send
- receive
- remote procedure call (RPC)
• communication models
- client-server communication: implies a message exchange between
two processes: the process which requests a service and the one which
provides it;
- group muticast: the target of a message is a set of processes, which
are members of a given group.
Performance and Scalability
Several factors are influencing the performance of a
distributed system:
• The performance of individual workstations.
• The speed of the communication infrastructure.
• Extent to which reliability (fault tolerance) is provided (replication and
preservation of coherence imply large overheads).
• Flexibility in workload allocation: for example, idle processors
(workstations) could be allocated automatically to a user’s task.
Scalability: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.)
Heterogeneity
• Distributed applications are typically heterogeneous:
– different hardware: mainframes, workstations,PCs,
servers, etc.;
– different software: UNIX, MSWindows, IBM
OS/2,Real-time OSs, etc. (e.g., operating systems,
compare UNIX socket and Winsock calls);
– unconventional devices: teller machines, telephone
switches, robots, manufacturing systems, etc.;
– diverse networks and protocols: Ethernet, FDDI,
ATM, TCP/IP, Novell Netware, etc.
– programming languages (in particular, data
representations)
The solution:
Middleware, an additional software layer to mask heterogeneity
Heterogeneity

• Some approaches
1. Middleware (e.g., CORBA): transparency of
network, hardware, software and programming
language heterogeneity
2. Mobile Code (e.g., JAVA): transparency from
hardware, software and programming language
heterogeneity through virtual machine concept
Openness
• 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;
– users can write and install their own services.
• Key aspect of openness:
- Standard interfaces and protocols (like Internet
communication protocols)
- Support of heterogeneity (by adequate middleware, like
CORBA)
Openness(Cont’d.)

Applications & Services

Middleware

Operating System Platform1 Operating System

Hardware: Platform2 Hardware:


Comp & Nw Comp & Nw

Node1 Node2

Software Architecture
Reliability and Fault Tolerance
One of the main goals of building distributed
systems is improvement of reliability.
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;
critical resources: resources which have to be up in order
the distributed system to work.
• Key pieces of hardware and software (critical resources)
should be replicated if one of them fails another one
takes up - redundancy.
Data on the system must not be lost, and copies stored
redundantly on different servers must be kept consistent.
• The more copies kept, the better the availability, but
keeping consistency becomes more difficult.
Reliability and Fault Tolerance
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.
Security
Security of information resources:
1. Confidentiality: Protection against
disclosure to unauthorized person
2. Integrity: Protection against alteration and
corruption
3. Availability: Keep the resource accessible.
The appropriate use of resources by different
users has to be guaranteed.
Distributed systems should allow communication between
programs/users/resources on different computers .

Security risks associated with free access.

You might also like