550 likes | 1k Views
Advanced Operating Systems Lecture 10: Distributed Systems University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Covered topic Distributed Systems, Why? And how. References Chapter 1 of the text book Outline Why Distributed systems Challenges.
E N D
Advanced Operating Systems Lecture 10: Distributed Systems University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Distributed Operating Systems
Covered topic • Distributed Systems, Why? And how. • References • Chapter 1 of the text book Distributed Operating Systems
Outline • Why Distributed systems • Challenges. • Communication • Distributed Operating systems • Architectural models Distributed Operating Systems
Problems? • Bigger Problems like weather forecast, Economic modeling, Scientific problems, etc. • Faster machines? It is getting harder to extract the performance modern applications require out of a single processor machine • Some application are inherently distributed, sensor networks, etc. • A lot of Data to store in one place • More efficient use of resources, sharing resources • Solution: Distributed computing Distributed Operating Systems
Distributed systems • Definitions • A collection of autonomous computers linked by a network, with software designed to produce an integrated computing facility • A distributed system is a collection of independent computers that appear to users as a single computer • A system in which hardware or software components located at networked computers communicate and coordinate their actions only by passing messages • Examples • World Wide Web • Automatic Teller Machines • Cell Phones Distributed Operating Systems
Working Definition • A distributed system is several computers doing something together • Three primary features of a distributed system • Multiple computers • Communications • “Virtual” Computer Distributed Operating Systems
Advantages Distributed Operating Systems
Disadvantages Distributed Operating Systems
Consequences • Concurrency • Concurrency is the norm instead of the exception • Synchronization is critical • No Global Clock • There is a limit as to how accurate a global clock can be. • Contrary to parallel systems. • Independent Failures • The more stuff you add the more likely something will break • Single system view says independent failures should not affect users Distributed Operating Systems
Communication Issues • Building a system out of interconnected computers requires that some major issues be addressed • Independent failure • Unreliable communication • Insecure Communication • Costly Communication Distributed Operating Systems
Distributed Operating Systems • A distributed operating system supports the encapsulation and protection of resources inside servers; and it supports mechanisms required to access these resources, including naming, communication and scheduling • The software for multiple CPU systems can be divided into three rough classes • Network operating systems (file servers) • Distributed Operating Systems • Shared Memory Multiprocessors Distributed Operating Systems
Parallel Computing • A large collection of processing elements that can communicate and cooperate to solve large problems quickly • A form of information processing which uses concurrent events during execution • In other words, both the language and the hardware support concurrency Distributed Operating Systems
Parallel Architectures • Unlike traditional von Neumann machines, there is no single standard architecture used on parallel machines • In fact dozens of different parallel architectures have been built and are being used • Several people have tried to classify the different types of parallel machines • The taxonomy proposed by Flynn is the most commonly used Distributed Operating Systems
Ex. Building a mail server mail arrives from outside world store it until... user reads/deletes/saves it • Solution: • One server w/ disk to store mail-boxes • Problems: • Performance: Stable performance under high load • consistent w.r.t. client-side copies • concurrent mail arrival, deletion • crash recovery (crash while updating mail-box) • availability Distributed Operating Systems
Other problems? • Not necessarily plenty of bandwidth • Not necessarily low latency • Significant variance in latency and bandwidth • Frequent and unpredictable partial failure of channel • Lost messages, &c What else has changed? • We don't have hardware support for synchronization/atomicity among hosts • We don't have a global timer or clock • Frequent and unpredictable failure of some CPUs, I/O devices, &c • Snoopy caches are not practical, because broadcasting is too expensive. Distributed Operating Systems
Challenges • There are a number of challenges found in building distributed systems • Heterogeneity • Openness • Security • Scalability • Failure Handling • Concurrency • Transparency Distributed Operating Systems
Heterogeneity • Applies to • Networks • Computer Hardware • Operating Systems • Programming Languages • Implementations • Middleware applies to a software layer that helps to handle heterogeneity Distributed Operating Systems
Openness • The characteristic that a system can be extended in various ways • Hardware extensions • Software extensions • Historically, computer systems were largely closed • UNIX broke the mold for OS • IBM PC broke the mold for hardware Distributed Operating Systems
Security • Security is a huge issue in computing in general, but even more so in distributed computing • Communication • Distributed Resources • Infrastructure Attacks Distributed Operating Systems
Scalability • Distributed systems operate at many different scales • Two workstations and a file server • The CS computers… • Often the more important question is not can you scale, but can you scale well • Consider the Internet Distributed Operating Systems
Failure Handling • What happens when a fault occurs? • Detect • Mask • Tolerate • Fault tolerant design is based on two approaches • Hardware redundancy • Software recovery Distributed Operating Systems
Hardware Redundancy • Two computers are employed for a single application, one acting as a standby • Very costly, but often very effective, solution • Redundancy can be planned at a finer grain • Individual servers can be replicated • Redundant hardware can be used for non-critical activities when no faults are present Distributed Operating Systems
Software Redundancy • Software must be designed so that the state of permanent data can be recovered or “rolled back” when a fault is detected • Transaction processing Distributed Operating Systems
Concurrency • Concurrency in a distributed system does not necessarily mean concurrency within a single program • Many users invoke similar commands • Many different server processes may be running • Synchronization, of course, is a problem Distributed Operating Systems
Transparency Distributed Operating Systems
Scalability Problems Examples of scalability limitations. Distributed Operating Systems
Scaling Techniques (1) 1.4 • The difference between letting: • a server or • a client check forms as they are being filled Distributed Operating Systems
Scaling Techniques (2) 1.5 An example of dividing the DNS name space into zones. Distributed Operating Systems
Hardware Models 1.6 Different basic organizations and memories in distributed computer systems Distributed Operating Systems
Multiprocessors (1) • A bus-based multiprocessor. 1.7 Distributed Operating Systems
Multiprocessors (2) • A crossbar switch • An omega switching network 1.8 Distributed Operating Systems
Homogeneous Multicomputer Systems • Grid • Hypercube 1-9 Distributed Operating Systems
Software Models • An overview between • DOS (Distributed Operating Systems) • NOS (Network Operating Systems) • Middleware Distributed Operating Systems
Uniprocessor Operating Systems • Separating applications from operating system code through a microkernel. 1.11 Distributed Operating Systems
Multicomputer Operating Systems (1) 1.14 Distributed Operating Systems
Multicomputer Operating Systems (2) • Alternatives for blocking and buffering in message passing. 1.15 Distributed Operating Systems
Distributed Shared Memory Systems (1) • Pages of address space distributed among four machines • Situation after CPU 1 references page 10 • Situation if page 10 is read only and replication is used Distributed Operating Systems
Distributed Shared Memory Systems (2) • False sharing of a page between two independent processes. 1.18 Distributed Operating Systems
Network Operating System (1) • General structure of a network operating system. 1-19 Distributed Operating Systems
Positioning Middleware • General structure of a distributed system as middleware. 1-22 Distributed Operating Systems
Applications, services Middleware Operating system Platform Computer and network hardware Software Layers Distributed Operating Systems
Middleware • What does it do? • Provides an API for the application • Hides the underlying heterogeneity • Examples • Sun RPC, ISIS • CORBA • RMI • DCOM Distributed Operating Systems
Middleware and Openness • In an open middleware-based distributed system, the protocols used by each middleware layer should be the same, as well as the interfaces they offer to applications. 1.23 Distributed Operating Systems
Comparison between Systems Distributed Operating Systems
Architectural Models • Concerned with • The placement of the components across a network of computers • The interrelationships between the components • Common abstractions • Server processes • Client processes • Peer processes Distributed Operating Systems
Clients and Servers • General interaction between a client and a server. 1.25 Distributed Operating Systems
Processing Level • The general organization of an Internet search engine into three different layers 1-28 Distributed Operating Systems
Multitiered Architectures (1) • Alternative client-server organizations (a) – (e). 1-29 Distributed Operating Systems
Multitiered Architectures (2) • An example of a server acting as a client. 1-30 Distributed Operating Systems
Client-Server • Creating for example a hotmail? What are the options? • One server? • Several servers? Distributed Operating Systems