16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Remus: High Availability via Asynchronous Virtual Machine Replication
Categories of I/O Devices
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Silberschatz and Galvin  Operating System Concepts Module 16: Distributed-System Structures Network-Operating Systems Distributed-Operating.
Distributed System Structures Network Operating Systems –provide an environment where users can access remote resources through remote login or file transfer.
Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
Implementing A Simple Storage Case Consider a simple case for distributed storage – I want to back up files from machine A on machine B Avoids many tricky.
Silberschatz, Galvin and Gagne  Operating System Concepts Chap15: Distributed System Structures Background Topology Network Types Communication.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Serverless Network File Systems. Network File Systems Allow sharing among independent file systems in a transparent manner Mounting a remote directory.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
Distributed components
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
Distributed System Structures CS 3100 Distributed System Structures1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Module 16: Distributed System Structures.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
Course Overview Principles of Operating Systems
Centralized Architectures
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Figure 1.1 Interaction between applications and the operating system.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
1 Distributed Systems: Distributed Process Management – Process Migration.
.NET Mobile Application Development Remote Procedure Call.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Networked File System CS Introduction to Operating Systems.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Multiprossesors Systems.. What are Distributed Databases ? “ A Logically interrelated collection of shared data ( and a description of this data) physically.
Lecture 4: Sun: 23/4/1435 Distributed Operating Systems Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
 Remote Procedure Call (RPC) is a high-level model for client-sever communication.  It provides the programmers with a familiar mechanism for building.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
Module 16: Distributed System Structures
Middleware Services. Functions of Middleware Encapsulation Protection Concurrent processing Communication Scheduling.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 16: Distributed System Structures.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Module 16: Distributed System Structures.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
Mark Stanovich Operating Systems COP Primitives to Build Distributed Applications send and receive Used to synchronize cooperating processes running.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Workshop 6 Agenda Homework review: 15.1, 16.5, 17.4 Study group project milestone Lecture & discussion on network structures Group activity on distributed.
Acknowledgement: These slides are adapted from slides provided in Thißen & Spaniol's course Distributed Systems and Middleware, RWTH Aachen Processes Distributed.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Chapter 14: Distributed Operating Systems Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 4, 2005 Outline n Motivation.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Implementing Remote Procedure Calls Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Published: ACM Transactions on Computer Systems,
Module 16: Distributed System Structures Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 4, 2005 Distributed.
Section 2.1 Distributed System Design Goals Alex De Ruiter
CS307 Operating Systems Distributed System Structures Guihai Chen Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Prof. Leonardo Mostarda University of Camerino
Module 16: Distributed System Structures
#01 Client/Server Computing
Chapter 16: Distributed System Structures
Distributed System Structures 16: Distributed Structures
DISTRIBUTED COMPUTING
Mobile Agents.
Last Class: Communication in Distributed Systems
Distributed Systems and Concurrency: Distributed Systems
#01 Client/Server Computing
Presentation transcript:

16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site has its own OS and some protocol ( i.e. FTP or Telnet ) provides an interface to those OS. Users must know machine and directory structure in order to find a file. DISTRIBUTED OPERATING SYSTEMS The users may be UNaware of the physical structure of the network. Data and process usage appears seamless. This seamlessness results because of the following actions:

16: Distributed Systems2 DISTRIBUTED SYSTEM STRUCTURES DATA MIGRATION Send the file ( whole or partial ) to be worked on at the requested site. Must send any modified portion of the file back to the originator. COMPUTATION MIGRATION Do work on the machine where file is located. Requires remote procedure calls. Send message to the remote machine that invokes a process to handle the request. PROCESS MIGRATION Move the whole operation to the "best" location. This may be done for Load balancing - distribute processes across network to even the workload. Computation speedup – sub-processes run concurrently on different sites. Hardware preference - process execution may require specialized processor. Software preference - required software might be available at only a particular site. Data access - run process remotely, rather than transfer all data locally. Migration

16: Distributed Systems3 DISTRIBUTED SYSTEM STRUCTURES Requests for access to a remote file are delivered to the server. Access requests are translated to messages for the server, and the server replies are packed as messages and sent back to the user. A common way to achieve this is via the Remote Procedure Call (RPC) paradigm. Messages addressed to an (RPC) daemon listening to a port on the remote system contain the name of a process to run and the parameters to pass to that process. The process is executed as requested, and any output is sent back to the requester in a separate message. A port is a number included at the start of a message packet. A system can have many ports within its one network address to differentiate the network services it supports. The (RPC) scheme requires binding client and server port. Remote Services

16: Distributed Systems4 DISTRIBUTED SYSTEM STRUCTURES Remote Services PUT FIGURE 16.1 HERE

16: Distributed Systems5 DISTRIBUTED SYSTEM STRUCTURES Binding information may be pre-decided, in the form of fixed port addresses. 1.At compile time, an (RPC) call has a fixed port number associated with it. 2.Once a program is compiled, the server cannot change the port number of the requested service. Binding can be done dynamically by a rendezvous mechanism. 1.Operating system provides a rendezvous daemon on a fixed (RPC) port. 2.Client then sends a message to the rendezvous daemon requesting the port address of the (RPC)it needs to execute. Remote Services

16: Distributed Systems6 DISTRIBUTED SYSTEM STRUCTURES A distributed file system (DFS) can be implemented as a set of (RPC) daemons and clients. 1.The messages are addressed to the (DFS) port on a server on which a file operation is to take place. 2.The message contains the disk operation to be performed (i.e., read, write, rename, delete, or status) 3.The return message contains any data resulting from that call, which is executed by the (DFS) daemon on behalf of the client. Remote Services

16: Distributed Systems7 DISTRIBUTED SYSTEM STRUCTURES Threads can send and receive messages while other operations within the task continue asynchronously. Pop-up thread - created on ``as needed'' basis to respond to new RPC. Cheaper to start new thread than to restore existing one. No threads block waiting for New work; no context has to be saved, or restored. Incoming (RPC)s do not have to be copied to a buffer within a server thread. RPC’s to processes on the same machine as the caller are made more lightweight via shared memory between threads in different processes running on same machine. Threads

16: Distributed Systems8 DISTRIBUTED SYSTEM STRUCTURES To ensure that the system is robust, we must: Detect failures when they occur. Reconfigure the system so that computation may continue. Recover when a site or a link is repaired. Failure Detection - To detect link and site failure, we use a handshaking procedure. At fixed intervals, sites A and B send each other an I-am-up message. If site A does not receive this message within a predetermined time period, it can assume that: a)site B has failed, b)that the link between A and B has failed, c)or that the message from B has been lost. Robustness

16: Distributed Systems9 DISTRIBUTED SYSTEM STRUCTURES At the time site A sends the Are-you-up? message, it specifies a time interval during which it is willing to wait for the reply from B. If A does not receive B's reply message within the time interval, A may conclude that one or more of the following situations has occurred: a)Site B is down. b)The direct link if one exists from A to B is down. c)The alternative path from A to B is down. a)The message has been lost. Robustness

16: Distributed Systems10 DISTRIBUTED SYSTEM STRUCTURES Reconfiguration - A procedure that allows the system to reconfigure and to continue its normal mode of operation. If a direct link from (A to (B has failed, this information must be broadcast to every site in the system, so that the various routing tables can be updated accordingly. If it is believed that a site has failed because it can no longer be reached then every site in the system must be so notified, so that they will no longer attempt to use the services of the failed site. Recovery from Failure - When a failed link or site is repaired, it must be integrated into the system gracefully and smoothly. Suppose that a link between A and B has failed. When it is repaired, both A and B must be notified. We can accomplish this notification by continuously repeating the handshaking procedure. Suppose that site B has failed. When it recovers, it must notify all other sites that it is up again. Site B then may have to receive from the other sites various information to update its local tables. Robustness

16: Distributed Systems11 DISTRIBUTED SYSTEM STRUCTURES Transparency and locality - Distributed systems should look like conventional, centralized system and not distinguish between local and remote resources. User mobility - Brings user's environment (i.e., home directory) to the machine where the user logs in. Fault tolerance - System should continue functioning, perhaps in a degraded form, when faced with various types of failures. Scalability - System should adapt to increased service load. Large-scale systems - Service demand from any system component should be bounded by a constant that is independent of the number of nodes. Process structure of the server - Servers should operate efficiently in peak periods; use of light-weight processes or threads. Design Issues

16: Distributed Systems12 DISTRIBUTED SYSTEM STRUCTURES In this section we have used the building blocks developed in the previous section to build up network services. We’ve examined RPC services and also looked at how to build robustness. Wrapup