Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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