How To Make A Distributed System Transparent



Similar documents
Distributed System: Definition

Distributed Operating Systems

Distributed Systems LEEC (2005/06 2º Sem.)

How To Understand The Concept Of A Distributed System

Principles and characteristics of distributed systems and environments

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1

Virtual machine interface. Operating system. Physical machine interface

Distribution transparency. Degree of transparency. Openness of distributed systems

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

Basics. Topics to be covered. Definition of a Distributed System. Definition of a Distributed System

Software Concepts. Uniprocessor Operating Systems. System software structures. CIS 505: Software Systems Architectures of Distributed Systems

Chapter 1: Distributed Systems: What is a distributed system? Fall 2008 Jussi Kangasharju

1.4 SOFTWARE CONCEPTS

Distributed Systems. Examples. Advantages and disadvantages. CIS 505: Software Systems. Introduction to Distributed Systems

Chapter 18: Database System Architectures. Centralized Systems

CS 5523 Operating Systems: Intro to Distributed Systems

1 Organization of Operating Systems

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures

Tier Architectures. Kathleen Durant CS 3200

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

A Comparison of Distributed Systems: ChorusOS and Amoeba

Network Attached Storage. Jinfeng Yang Oct/19/2015

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Weighted Total Mark. Weighted Exam Mark

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Chapter 11 Distributed File Systems. Distributed File Systems

How To Write A Network Operating System For A Network (Networking) System (Netware)

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Computer Science 4302 Operating Systems. Student Learning Outcomes

B) Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling

Automatic load balancing and transparent process migration

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Synchronization. Todd C. Mowry CS 740 November 24, Topics. Locks Barriers

Design and Implementation of the Heterogeneous Multikernel Operating System

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

System Models for Distributed and Cloud Computing

LinuxWorld Conference & Expo Server Farms and XML Web Services

Chapter 17: Distributed Systems

Lecture 2 Parallel Programming Platforms

Distributed Systems Lecture 1 1

OPERATING SYSTEMS Internais and Design Principles

Operating Systems 4 th Class

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

Amoeba Distributed Operating System

Operating System Components and Services

Cluster, Grid, Cloud Concepts

Deploying a distributed data storage system on the UK National Grid Service using federated SRB

Client/Server and Distributed Computing


OpenMosix Presented by Dr. Moshe Bar and MAASK [01]

Network File System (NFS) Pradipta De

Mobile and Heterogeneous databases Database System Architecture. A.R. Hurson Computer Science Missouri Science & Technology

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Chapter 1: Introduction. What is an Operating System?

COS 318: Operating Systems. Virtual Machine Monitors

Chapter 3: Operating-System Structures. Common System Components

A distributed system is defined as

Middleware Lou Somers

Distributed Operating Systems. Cluster Systems

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Simplest Scalable Architecture

A Deduplication File System & Course Review

Solaris For The Modern Data Center. Taking Advantage of Solaris 11 Features

Chapter 2: Remote Procedure Call (RPC)

Patterns in Software Engineering

Planning Domain Controller Capacity

CommuniGate Pro White Paper. Dynamic Clustering Solution. For Reliable and Scalable. Messaging

Distributed Data Management

BBM467 Data Intensive ApplicaAons

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

Symmetric Multiprocessing

Distributed Computing

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

SCALABILITY AND AVAILABILITY

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

Chapter 15 Windows Operating Systems

CORBA and object oriented middleware. Introduction

Operating System Structures

Microkernels & Database OSs. Recovery Management in QuickSilver. DB folks: Stonebraker81. Very different philosophies

Service Oriented Architecture

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB

MOSIX: High performance Linux farm

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Grid Computing Vs. Cloud Computing

Resource Utilization of Middleware Components in Embedded Systems

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

Web DNS Peer-to-peer systems (file sharing, CDNs, cycle sharing)

Transcription:

Operating Systems Interface between the hardware and the rest: editors, compilers, database systems, application programs, your programs, etc. Allows portability, enables easier programming, The manager of different resources (memory, CPU, disk, printer, etc) in your system Takes responsibility away from the users, tends to improve metrics (throughput, response time, etc) 2 types: monolithic: all functions are inside a single kernel (central part of the OS) microkernel-based: non-basic functions float as servers (there is a small kernel for the basic functionality) Distributed Systems A distributed system is: A collection of independent computers that appears to its users as a single coherent system. (also, a collection of systems that when one breaks nothing works) 1

Distributed Systems 1.1 A distributed system organized as middleware. What s middleware? Note that the middleware layer extends over multiple machines. Issues in Distributed Computing Why distribute? What s bad about centralized? DISTRIBUTION: allows sharing of data, code, devices, messages, etc is more flexible (can add more resources, scalable) is cheaper (several small machines are cheaper than one powerful). That is, the price/performance ratio is smaller than in centralized is usually faster (same as above) can be fault tolerant (if one site fails, not all computations fail) much, MUCH MORE!!! More complex? YES, much more (here is the much more) More time consuming? (messages need to go back and forth) Slower response time? (messages, but can parallelize comps) What about reliability, security, cost, network, messages, congestion, load balancing... 2

Distributed OS Services Global Inter-Process Communication (IPC) primitives, transparent to the users (currently support to client-server computing) Global protection schemes, so that a validation at a site needs to be validated at another site (Kerberos) Global process management: usual (destroy, create, etc...) + migration, load distribution, so that the user need not manually logon to a different machine. The OS takes charge, and executes the program requested by the user in a less-loaded, fastresponding machine (compute server, file server, etc). Global process synchronization (supporting different language paradigms for heterogeneity and openness) Compatibility among machines (binary, protocol, etc) Global naming and file system Distributed OSs Transparency attempts to hide the nature of the system from users. Good, because users usually don t need to know details Degree of transparency is important, too much may be too much Performance is usually an issue that needs to be studied for a specific system architecture, application, users, etc. Scalability is important in the long run and general use some applications, systems, users, etc do not need scalability Distributed algorithms are also needed, which have the following characteristics: State information should be distributed to all nodes (how? overhead?) Decisions are made based on local information (why?) Fault tolerance (what for?) No global/synchronized clocks (why?) 3

Transparency in a Distributed System O H3P/NFE KFP/H9DBN.G Q C+DFEG.HJI KL1IM6N AB. )) # %( 8 "%("%9 #? @. 1, > "%9 #$ ##, $! 1"%( =. "%9. %3 "%6,77 4 7%(, %9 6! 1"%9. ;.! %& %3 "%6,7 7 4 % %3 <! %3 $! ;. 8! %3 %3 "%6,7 " 4! #8 %9 %3 4 : ( %3 "%6,7 " 4! #8 %9 %3 4 5"! %3 )! # 1 4 # ).!!! " " 2%( #$ %& #'( )% *+, - - -../ 10 Degree of Transparency Observation: Aiming at full distribution transparency may be too much: Users may be located in different continents; distribution is apparent and not something you want to hide Completely hiding failures of networks and nodes is (theoretically and practically) impossible You cannot distinguish a slow computer from a failing one You can never be sure that a server actually performed an operation before a crash Full transparency will cost performance, exposing distribution of the system Keeping Web caches exactly up-to-date with the master copy Immediately flushing write operations to disk for fault tolerance 4

Scalability Three dimensions: Size: Number of users and/or processes Geographical: Maximum distance between nodes Administrative: Number of administrative domains Limitations: }~T +y< k _BVF[2X3]BgUl _Fà^ _BXsBUb _F^ k _BVF[2X3]BgUl _Fà`B].[3] k _BVF[2X3]BgUl _Fà]BgWBS/X2U[2m/dj^ ubvtw+xzy+{ n@^ UVFW6g_f^ _BX(s._BXTi3S/Xt]BggpZF^ _BX3^ n@^ UVFW6g_fS/VBo2gUVp_q[3_Bg_Be/mFS/Vp_h\FS/S/r RTS/UVFWYX3S/Z.[UVFWY\F]F^ _FàS/Vcb S/dfe/g_.[3_hUV.i&S/X2dj].[JUS/V Techniques for Scaling Distribution: Partition data and computations across multiple machines: Move computations to clients (e.g., Java applets) Decentralized naming services (e.g., DNS) Decentralized information systems (e.g., WWW) Replication: Make copies of data available at different machines (e.g., replicated file servers, databases, mirrored websites, etc) Caching: Allow client processes to access local copies Web caches (e.g., browser/web proxy) File caches (e.g., server or client) 5

Scalability Applying scaling techniques is easy, except for: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization precludes large-scale solutions. Observation1: If we can tolerate inconsistencies, we may reduce the need for global synchronization. Observation2: Tolerating inconsistencies is application dependent. Scaling Techniques (Example 1) The difference between letting: a) a server or b) a client check forms as they are being filled 6

Scaling Techniques (Example 2) An example of dividing the DNS name space into zones. Hardware Concepts Different basic organizations and memories in distributed computer systems 7

Multiprocessors (1) A bus-based multiprocessor. Multiprocessors (2) A crossbar switch An omega switching network 8

Homogeneous Multicomputer Systems Grid Hypercube Software Concepts Distributed systems can be achieved in 3 ways: DOS (Distributed Operating Systems) NOS (Network Operating Systems) Middleware F ±"µ / / + / + œ ˆˆ + F±².³Jª µ1ª «š ŠŠ Š Ž 9 1 ˆ,. ˆ 7 š Ž Š # 9. " ( Š " 9 Ž š Š2 Š2 ( z 6 9 ž Š 1 ˆ " 9 Ž šš2 Š2 ( Ÿ ( š Ž Š$ 9. # " ( Š$ 3ž f Ž ˆ#, / Bˆ ˆ 9 Ž " / ( & Š Š 1 Š / + 7 Ž" 9 Ž š,š Ž /ª«? T p / 6 ˆ Ž ˆ Ž ˆ, Š Š š ( - ( Ž Š < 6 " Š Š 3 Ž Š1 Ž ƒ ˆ #ˆF Š2 3 ( Œ " 9 Ž 9

Uniprocessor Operating Systems Separating applications from operating system code through a microkernel. Multiprocessor Operating Systems Mutual exclusion and synchronization: Semaphores? Test-n-set and Swap instructions? Spin locks? Monitors? A combination thereof? Implementation issues: Shared memory? Message passing? A combination thereof? 10

Multicomputer Operating Systems (1) OS on each computer knows about the other computers OS on each computer is the same Services are generally (transparently) distributed across computers Multicomputer Operating Systems (2) No shared memory ¹ message passing Typically no broadcasting, thus need software Hard(er) to do synchronization No centralized decision making In practice, then, only very few truly distributed multicomputer OSs exist (Amoeba? Authors? º ) 11

Multicomputer Operating Systems (3) âpä ÞF å Ý3Ø ÞBÔæ Õ.ß1ÔØ6ÞèçFØ Ô Þß ÃÄ ½Å¾¼Æ ǼÀ6È Æ"É9ÊÄ ÏÈРмÀ6Æ Â É/Ð&ÈÄÄ ÃÄ ½Å¾¼Æ ǼÀ6È Æ"É9ÊÄ Ë7¼ ¾¾1 Ì ¼#¾¼Æ É ÃÄ ½Å¾¼Æ ǼÀ6È Æ"É9ÊÄ Ë7¼ ¾¾1 Ì ¼,À ¼ ½1¼ÊÍ ¼ Ç ÃÄ ½Å¾¼Æ ǼÀ6È Æ"É9ÊÄ Ë7¼ ¾¾1 Ì ¼Ç¼ÄÊÍ ¼À ¼ Ç â ÒBÞ.àcÖ Ü.ã3ã Ò/Ý Î.¼ ¾»/»/»/ Ñ6ÒBÓÔÕ/ÖBÓÒ, Ø<ÙqÙfÚ Û6Ü Õ/Ý3Õ/Þ.ßÒFÒ.à á»bâ É<Æ ¼ ½¼ ¾¾ ÀÁ»B É<Æ ¼ ½¼ ¾¾ ÀÁ»B¼ ½¼ ¾¾ ÀÁ»B¼ ½¼ ¾¾ ÀÁ Relation between blocking, buffering, and reliable communications. Distributed Shared Memory Systems (1) a) Pages of address space distributed among four machines b) Situation after CPU 1 references page 10 c) Situation if page 10 is read only and replication is used 12

Distributed Shared Memory Systems (2) False sharing of a page between two independent processes. Network Operating System (1) Each computer has its own operating system with networking facilities Computers work independently (i.e., they may even have different operating systems) Services are tied to individual nodes (ftp, telnet, WWW) Highly file oriented (basically, processors share only files) 13

Network Operating System (2) Two clients and a server in a network operating system. Network Operating System (3) Different clients may mount the servers in different places. 14

Middleware OS on each computer need not know about the other computers OS on different computers need not generally be the same Services are generally (transparently) distributed across computers Middleware Motivation: Too many networked applications were hard or difficult to integrate: Departments are running different NOSs Integration and interoperability only at level of primitive NOS services Need for federated information systems: Combining different databases, but providing a single view to applications Setting up enterprise-wide Internet services, making use of existing information systems Allow transactions across different databases Allow extensibility for future services (e.g., mobility, teleworking, collaborative applications) Constraint: use the existing operating systems, and treat them as the underlying environment (they provided the basic functionality anyway) 15

Middleware Services Communication Services: replace primitive sockets with Remote Procedure Calls (or Remote Method Invocations) Message passing Communicating streams Information Services: data management Large-scale, system-wide naming Advanced directory services Location services Persistent storage Data caching and replication Security Services: secure communication and processing Authentication and authorization Encryption Middleware and Openness Give applications control of when, where and how to access data (e.g., code migration and distributed transaction processing) 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. 16

ú ú ú Comparison between Systems B#=). ë ô ëfëfï Tø2ô3ó ìfð ê óbô ëbìfüù û ó jëcé7ûhï/ì ó îîbìfïpñ/ëfð ú ý ë ô ï ü ï/ê õëfð,ï é7û Bó ð õð ï ô ü ï ì õü ó.ø2õï/ì ëfð ï /ôü ë ó ì ó ë jëbì ø ûpü ó îóbý/õîõøù éêpëbìbìfëfð ð ò ë ôù õ ö ëfð û jë jï óbô ëfñ ôù ÿ-îï ü ëbì ýfó ø2ô3ó î î ú ï í+îïpð ëfñ >? 1@%= 0 'A)2(5476 #$%&' "!" õ ö ëfð ëfð ð ó ë.ð ñ õð ÿ-îï ø2ô2õý.ø ýfó î ëfñ ïpñbë ô3ó.ø ëbîù í+îïbð ëfñ 89):;*-%=< 476.õîëFð þ ë ô ìpïpñbë ö ëfð éêfëbì õ ú ï ïpñbëbîfð êfëfü õ 9õü þ ë ô ìfïpñ/ë ò+óbô9õëfð éêpëbì A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems. ï ú ï (( )+*-,.%&)./ 0,213)2(5476 Clients and Servers Servers typically manage shared resource, more intensive use Clients are thinner, less resource intensive, provide interface, manage smaller (digital?) components (e.g., barcode readers) Clients and servers may be in different machines Request/reply model (blocking or not?) 17

Application Layering Traditional three layers: User interface (only interface) Processing layer (no data) Data layer (only data) Typical application: database technology Many others Layering The general organization of an Internet search engine into three different layers 18

Alternative client-server organizations Example Architecture An example of a server acting as a client. 19

Modern Architectures An example of horizontal distribution of a Web service. Alternative C/S Architectures Cooperating servers: Service is physically distributed across a collection of servers. E.g., Replicated file systems Network news systems Naming systems (DNS, X.500, ) Workflow systems Cooperating clients: distributed application exists by virtue of client collaboration: Teleconferencing where each client owns a (multimedia) workstation Publish/subscribe (push/pull) architectures in which role of client and server is blurred 20