Upload
herbert-charles
View
220
Download
0
Embed Size (px)
Citation preview
Distributed Computing Systems
CSCI 6900/4900
Review• Distributed system
– A collection of independent computers that appears to its users as a single coherent system.
• Need for distributed systems– Distributed clients– Distributed data/resources– Distributed organizations– Enabling technology
Distributed System Organization
A distributed system organized as middleware.Note that the middleware layer extends over multiple machines.
1.1
Design Goals • Make resources available to users
– Enable resource sharing in a controlled manner
• Transparency– Hide distributed nature
• Openness– Complies to standards with regard to syntax and
semantics– Interoperability
• Security & privacy
• Scalability & performance
Transparency in a Distributed SystemTransparency Description
AccessHide 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
RelocationHide that a resource may be moved to another location while in use
Replication Hide that a resource may have multiple copies
ConcurrencyHide that a resource may be shared by several competitive users
Failure Hide the failure and recovery of a resource
PersistenceHide whether a (software) resource is in memory or on disk
• How much transparency is needed?
• How much can we achieve?
Openness Security & Privacy• Openness – Follows rules that describe syntax and
semantics– Interface definition language– Interoperability, portability– Mechanism-policy separation
• Security– Access control– Data integrity– Data/service availability– Copyright protection
Scalability
Concept Example
Centralized services A single server for all users
Centralized data A single on-line telephone book
Centralized algorithmsDoing routing based on complete information
• Scalability with respect to size
• Scalability with respect to geographical location
• Scalability with respect to management
Scalability Problems
Scalability Techniques
• Hiding communication latencies– Asynchronous communication– Reduce amount of data transmitted
• Distribution– Spreading work across system
• Caching and replication– Make copies of data and services
• Balance load– Avoid hot spots
Scaling Techniques
1.4
The difference between letting:
a) a server or
b) a client check forms as they are being filled
Scaling Techniques (2)
1.5
An example of dividing the DNS name space into zones.
Hardware Classification• Based on address space
– Multiprocessor– Multicomputer
• Based on communication infrastructure– Bus– Switched
• Based on uniformity– Homogenous– Heterogeneous
Hardware Concepts
1.6
Different basic organizations and memories in distributed computer
systems
Multiprocessors (1)
1.7
• Key Property: All CPUs have direct access to shared memory
• Coherent memory: Reads and writes are sequential
A bus-based multiprocessor.
• Scalability
• Ensuring coherency
Multiprocessors (2)
Crossbar switch Omega switching network
Homogeneous Multicomputer Systems
HypercubeGrid
• Also known as System Area Networks (SANs)
• Bus-based (Shared multi-access N/W such as Ethernet)
• Switch-based (Massively Parallel Processors, Cluster of Workstations)
Heterogeneous Multicomputer Systems• Most widely used• Individual computers can vary widely• Some node might be multiprocessor machines or
homogenous multicomputer machines• Hierarchical systems (multicomputer systems on
top of existing multicomputer systems).• Nodes lack global view• Cannot assume identical or even similar
performance• Providing transparency, performance &
scalability are key challenges.
Software Concepts• Functionalities
– Resource managers– Hiding intricacies and heterogeneity
• Two kinds of operating systems– Tightly coupled (distributed operating system)– Loosely coupled (network operating system)
• Middleware – Providing transparency for loosely coupled systems