Introduction to Distributed System

Download Report

Transcript Introduction to Distributed System

Introduction to Distributed
Systems
Distributed System
Definitions:
 “A distributed system is a collection of independent
computers that appear to the users of the system as a single
computer.”
 “A system in which hardware or software components
located at networked computers communicate and
coordinate their actions only by message passing.”
 “A system that consists of a collection of two or more
independent computers which coordinate their processing
through the exchange of synchronous or asynchronous
message passing.”
 “A distributed system is a collection of autonomous
computers linked by a network with software designed to
produce an integrated computing facility.”
Definition of a Distributed System (2)
1.1
A distributed system organized as middleware.
Note: The middleware layer extends over multiple
machines.
Distributed System Reasons
Functional distribution:
Computers have different functional Capabilities:
– Client / server
– Host / terminal
– Data gathering / data processing
Sharing of resources:

with specific functionalities
Inherent distribution:
stemming from the application domain, e.g.
– Cash register and inventory systems for supermarket chains
– Computer supported collaborative work
Load distribution / balancing:
assign tasks to processors such that the overall system
performance is optimized (Parallel Processing).
Distributing Systems Reasons-Cont…
 Replication of processing power:

independent processors working on the same task

Distributed systems consisting of collections of microcomputers
may have processing powers that no supercomputer will ever
Achieve

10000 CPUs, each running at 50 MIPS, yields 500000 MIPS, then
• Instruction to be executed in 0.002 nsec
• Equivalent to light distance of 0.6 mm
• Any processor chip of that size would melt immediately
Physical Separation:
Systems that rely on the fact that computers are physically
separated (e.g., to satisfy reliability requirements).
Economics:
Collections of microprocessors offer a better price/performance
ration than large mainframes.
–mainframes: 10 times faster, 1000 times as expensive
Why Distributed Systems and
not isolated hardware?
• Need to share data and resources
amongst users
• Enhance person-to-person communication
• Flexibility: different computers with
different capabilities can be shared
amongst users
Distributed Systems Consequences
• Distributed systems are concurrent systems;
– Every software or hardware component is autonomous in the sequel, we
will call such an autonomous component a “process”
– Difference process/program
• Components execute concurrent tasks:
– If A and B are concurrent if either A can happen before B, or B can
happen before A (nondeterministic)
• Synchronization and coordination by message passing
• Sharing of resources
• Typical problems of concurrent systems
– Deadlocks
– Life locks
– Unreliable communication
Distributed vs. Centralized Systems
Advantages of Distributed Systems:
• Economics
– Many microprocessors that cooperatively work together offer better
price/performance then a single large mainframe computer
• Speed
– A distributed system may have more total computing power than a
mainframe
• Inherent Distribution
– Some applications involve spatially separated machines
• Reliability
– If one machine crashes, the system as a whole can still survive
• Incremental Growth
– Computing power can be added in small increments
Advantages of Distributed Systems over
Isolated PC’s
• Data Sharing
– We desire to allow many users access a common data base
• Device Sharing
– Allow many users to share expensive peripherals like color laser
printers
• Communication
– Make human-to-human communications easier (e.g., email)
• Flexibility
– Spread the workload over the available machines in the most cost
effective ways
• The popularity of LAN, WAN, MAN and the Internet networks now
makes distributed systems using standard PC hardware possible
Disadvantages of Distributed Systems
Software
• Little software exists at present for distributed systems
• The network can saturate or cause other problems
– Bandwidth forces design decisions
– Network reliability is an issue
• Security
• Managing security on a distributed system is complex
• New technologies such as Kerberous, LDAP, onDemand
and PKI are now becoming commercially available
–
–
Physical distribution of resources vs. demand.
Computing power per node is limited.
Generally
• We want a distributed system to appear as one
large non-distributed system from the users
perspective
• Sometimes we want distributed systems to be
act as parallel machines to run parallel
algorithms
• Today
• Most distributed system have very few
processors (< 64, but typically < 16)
• The future distributed systems will have
thousands of processors
Distributed Systems Challenges
Absence of a global clock
• Due to asynchronous message passing there are limits on
the precision with which processes in a distributed system
can synchronize their clocks.
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
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
Distributed Systems Challenges Cont...
1. Heterogeneity of
 Underlying network infrastructure,
 Computer hard- and software (e.g., operating systems,
compare UNIX socket and Winsock calls),
 Programming languages (in particular, data
representations).
 Some approaches


Middleware (e.g., CORBA): transparency of network,
hard and software and programming language
heterogeneity
Mobile Code (e.g., JAVA): transparency from hard-,
software and programming language heterogeneity
through virtual machine concepts
Distributed Systems Challenges Cont...
2. Openness
– Ensure extensibility and maintainability of
systems
Adherence to standard interfaces
3. Security
 Privacy
 Authentication
 Availability
 Trusting
Challenges in The Design of Distributed
Systems
4. Handling of Failures
– Detection (may be impossible)
– Masking
 Retransmission
 redundancy of data storage
– Tolerance
 exception handling (e.g., timeouts when waiting for a web
resource)
– Redundancy
 redundant routes in network
 replication of name tables in multiple domain name servers
Challenges in The Design of Distributed
Systems
5. Concurrency
•
•
Consistent scheduling of concurrent threads (so that dependencies are
preserved, e.g., in concurrent transactions)
Avoidance of dead- and life lock problems
6. Transparency:
•
•
Concealing the heterogeneous and distributed nature of the system so
that it appears to the user like one system.
Transparency categories (according to ISO's Reference Model for ODP)
– Access: access local and remote resources using identical operations
* e.g., network mapped drive using Samba server, NFS
• Mounts
– Location: access without knowledge of location of a resource
• e.g., URLs, email addresses
• Concurrency: allow several processes to operate concurrently using
shared resources in a consistent fashion
Distributed Software
• Software is very critical to a distributed system
• The image that a system presents to its users and
how they think about the system is largely
determined by the operating system software
• Like hardware there are several classifications of
distributed operating systems
– Network Operating Systems
– Distributed Operating Systems
– Multiprocessor Timesharing Operating Systems
• Without a distributed operating system the user is
responsible for managing the distributed
environment
– Very complex, this is what an OS is suppose to handle
Software Concepts
System
Description
Main Goal
DOS
Tightly-coupled operating system for multiprocessors and homogeneous multicomputers
Hide and manage
hardware resources
NOS
Loosely-coupled operating system for
heterogeneous multicomputers (LAN and WAN)
Offer local services
to remote clients
Middleware
Additional layer atop of NOS implementing
general-purpose services
Provide distribution
transparency
• An overview of
 DOS (Distributed Operating Systems)
 NOS (Network Operating Systems)
 Middleware
Distributed Operating Systems
• Requirements:
–
–
–
–
Provide user with convenient virtual computer.
Hide distribution of resources.
Mechanisms for protecting resources.
Secure communication.
• Definition
• Distributed OS looks to user like ordinary
centralized OS, but runs on multiple,
independent CPUs.
– Use of multiple processors is invisible.
– User views system as virtual uniprocessor.
Network Operating Systems
Definition:
• A network OS is a collection of OSs of
computers connected through a network
incorporating modules to provide access to
remote resources.
• Characteristics:
– Each computer has private OS.
– User works on his own machine and remotely logs in
to other computers.
– Users are aware of location of files.
– Limited fault tolerance.
Research and Design Issues
• There are many design issues that are important when
considering how to achieve a single system image in a
distributed environment
Transparency
• System designers “fool” users into thinking a collection of
computers is a single timesharing system
Flexibility
• System should be able to be logically configured in a
flexible manner
Reliability
• System should be able to tolerate one or more failures in
the distributed environment
Scalability
• System should scale well and limit the amount of central
control
Research and Design IssuesCont..
• Communication model
– Paradigms for process interaction
• Heterogeneity
• Autonomy and/or interdependence
• Replication
Transparency
Transparency:
• Make the network invisible to user/applications.
• Various degrees of transparency:
–
–
–
–
–
–
Access Transparency
Location Transparency
Name Transparency
Data Transparency
Execution Transparency
Performance Transparency
Transparency in a Distributed System
Different forms of transparency in a distributed system.
Transparency
Description
Access
Hide differences in data representation and how a resource is
accessed
Location
Hide where a resource is located
Migration
Hide that a resource may move to another location
Relocation
Hide that a resource may be moved to another location while in
use
Replication
Hide that a resource may be redundant and shared by several
competitive users
Concurrency
Hide that a resource may be shared by several competitive
users
Failure
Hide the failure and recovery of a resource
Persistence
Hide whether a (software) resource is in memory or on disk