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