Download presentation
Presentation is loading. Please wait.
1
Introduction to Distributed Systems CS412: Programming Distributed Applications Computer Science Southern Illinois University CS412: Programming Distributed Applications1
2
Characterization of Distributed Systems zDistributed systems are concurrent systems yEvery software or hardware component is autonomous xwe will call such an autonomous component a “process” yComponents execute concurrent tasks xA and B are concurrent if either A can happen before B, or B can happen before A (interleaving semantics) ySynchronization and coordination by message passing ySharing of resources yTypical problems of concurrent systems xDeadlocks CS412: Programming Distributed Applications 2
3
Characterization of Distributed Systems (cont.) zAbsence of a global clock yDue to message passing there are limits on the precision with which processes in a distributed system can synchronize their clocks yIn 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 xDue to concurrency and message passing communication zSpecific failure modes yProcesses run autonomously, in isolation xFailures of individual processes may remain undetected xIndividual processes may be unaware of failures in the system context CS412: Programming Distributed Applications 3
4
Examples of Distributed Systems 1) A typical portion of the Internet 4 CS412: Programming Distributed Applications
5
2) A typical intranet 5 CS412: Programming Distributed Applications
6
3) Portable and handheld devices in a distributed system 6 CS412: Programming Distributed Applications
7
4) Web servers and web browsers Internet Browsers Web servers www.google.com www.cdk3.net www.w3c.org Protocols Activity.html http://www.w3c.org/Protocols/Activity.html http://www.google.comlsearch?q=kindberg http://www.cdk3.net/ File system of www.w3c.org 7 CS412: Programming Distributed Applications
8
Transparencies Transparency (Challenges in DS design): concealing the heterogeneous and distributed nature of the system so that it appears to the user like one system: Access transparency: Access transparency: enables local and remote resources to be accessed using identical operations. Location transparency Location transparency: enables resources to be accessed without knowledge of their physical or network location (for example, which building or IP address). Concurrency transparency Concurrency transparency: enables several processes to operate concurrently using shared resources without interference between them. Replication transparency Replication transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers. Failure transparency Failure transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components. Mobility transparency Mobility transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs. Performance transparency Performance transparency: allows the system to be reconfigured to improve performance as loads vary. Scaling transparency Scaling transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms. 8 CS412: Programming Distributed Applications
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.