Last Class: Introduction

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Lecture 3 Page 1 CS 239, Spring 2001 Interprocess Communications in Distributed Operating Systems CS 239 Distributed Operating Systems April 9, 2001.
Computer Science Lecture 2, page 1 CS677: Distributed OS Last Class: Introduction Distributed Systems – A collection of independent computers that appears.
CS-3013 & CS-502, Summer 2006 Network Input & Output1 CS-3013 & CS-502, Summer 2006.
Lecture 8 Epidemic communication, Server implementation.
Chapter 4.1 Interprocess Communication And Coordination By Shruti Poundarik.
DISTRIBUTED COMPUTING
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1 Chapter 2. Communication. STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered Protocol But some other protocols.
Kyung Hee University 1/41 Introduction Chapter 1.
3.1 Silberschatz, Galvin and Gagne ©2009Operating System Concepts with Java – 8 th Edition Chapter 3: Processes.
The InetAddress Class A class for storing and managing internet addresses (both as IP numbers and as names). The are no constructors but “class factory”
Distributed Computing A Programmer’s Perspective.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Distributed (Operating) Systems -Communication in Distributed Systems- Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet.
Introduction Chapter 1. Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
1 Chapter 2. Communication. STEMPusan National University STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered.
TEXT: Distributed Operating systems A. S. Tanenbaum Papers oriented on: 1.OS Structures 2.Shared Memory Systems 3.Advanced Topics in Communications 4.Distributed.
1 Network Communications A Brief Introduction. 2 Network Communications.
R Some of these slides are from Prof Frank Lin SJSU. r Minor modifications are made. 1.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Communication in Distributed Systems. . The single most important difference between a distributed system and a uniprocessor system is the interprocess.
Distributed Operating Systems Spring 2004
Client-Server Communication
Java Distributed Object System
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Prof. Leonardo Mostarda University of Camerino
Distributed Systems CS
Distributed Operating Systems
Definition of Distributed System
Transport Layer.
OSI Protocol Stack Given the post man exemple.
Last Class: RPCs and RMI
CHAPTER 3 Architectures for Distributed Systems
Introduction to client/server architecture
#01 Client/Server Computing
Client-Server Interaction
CGS 3763 Operating Systems Concepts Spring 2013
Replication Middleware for Cloud Based Storage Service
Distributed Systems CS
Advanced Operating Systems
Communication Chapter 2.
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
DISTRIBUTED COMPUTING
Inter Process Communication (IPC)
Sarah Diesburg Operating Systems COP 4610
CS703 - Advanced Operating Systems
Multiple Processor Systems
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2005 Module 20 Distributed Systems
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
An Introduction to Internetworking
Distributed Systems CS
An Introduction to Internetworking
CSE 451: Operating Systems Winter 2007 Module 21 Distributed Systems
Lecture 6: RPC (exercises/questions)
Process-to-Process Delivery: UDP, TCP
Distributed Systems (15-440)
Last Class: Communication in Distributed Systems
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Communication.
Transport Layer 9/22/2019.
#01 Client/Server Computing
Distributed Systems CS
Presentation transcript:

Last Class: Introduction Distributed Systems A collection of independent computers that appears to its users as a single coherent system Hardware concepts Multiprocessors, multi-computers Beyond uniprocessor operating systems Distributed OS Network OS Middleware OS Complementary properties CS677: Distributed OS

Communication in Distributed Systems Issues in communication (today) Message-oriented Communication Remote Procedure Calls Transparency but poor for passing references Remote Method Invocation RMIs are essentially RPCs but specific to remote objects System wide references passed as parameters Stream-oriented Communication CS677: Distributed OS

Communication Between Processes Unstructured communication Use shared memory or shared data structures Structured communication Use explicit messages (IPCs) Distributed Systems: both need low-level communication support (why?) CS677: Distributed OS

Communication Protocols Protocols are agreements/rules on communication Protocols could be connection-oriented or connectionless 2-1 CS677: Distributed OS

Layered Protocols 2-2 A typical message as it appears on the network. CS677: Distributed OS

Client-Server TCP 2-4 Normal operation of TCP. Transactional TCP. CS677: Distributed OS

Middleware Protocols Middleware: layer that resides between an OS and an application May implement general-purpose protocols that warrant their own layers Example: distributed commit 2-5 CS677: Distributed OS

Client-Server Communication Model Structure: group of servers offering service to clients Based on a request/response paradigm Techniques: Socket, remote procedure calls (RPC), Remote Method Invocation (RMI) kernel kernel file server kernel process server kernel terminal server client CS677: Distributed OS

Issues in Client-Server Communication Addressing Blocking versus non-blocking Buffered versus unbuffered Reliable versus unreliable Server architecture: concurrent versus sequential Scalability CS677: Distributed OS

Addressing Issues Question: how is the server located? Hard-wired address Machine address and process address are known a priori Broadcast-based Server chooses address from a sparse address space Client broadcasts request Can cache response for future Locate address via name server user server user server NS user server CS677: Distributed OS

Blocking versus Non-blocking Blocking communication (synchronous) Send blocks until message is actually sent Receive blocks until message is actually received Non-blocking communication (asynchronous) Send returns immediately Return does not block either Examples: CS677: Distributed OS

Buffering Issues Unbuffered communication Buffered communication Server must call receive before client can call send Buffered communication Client send to a mailbox Server receives from a mailbox user server user server CS677: Distributed OS

Reliability Unreliable channel Reliable channel request Unreliable channel Need acknowledgements (ACKs) Applications handle ACKs ACKs for both request and reply Reliable channel Reply acts as ACK for request Explicit ACK for response Reliable communication on unreliable channels Transport protocol handles lost messages ACK User reply Server ACK request User reply Server ACK CS677: Distributed OS

Server Architecture Sequential Concurrent Thus servers could be Serve one request at a time Can service multiple requests by employing events and asynchronous communication Concurrent Server spawns a process or thread to service each request Can also use a pre-spawned pool of threads/processes (apache) Thus servers could be Pure-sequential, event-based, thread-based, process-based Discussion: which architecture is most efficient? CS677: Distributed OS

Scalability Question:How can you scale the server capacity? Buy bigger machine! Replicate Distribute data and/or algorithms Ship code instead of data Cache CS677: Distributed OS

To Push or Pull ? Client-pull architecture Server-push architecture Clients pull data from servers (by sending requests) Example: HTTP Pro: stateless servers, failures are each to handle Con: limited scalability Server-push architecture Servers push data to client Example: video streaming, stock tickers Pro: more scalable, Con: stateful servers, less resilient to failure When/how-often to push or pull? CS677: Distributed OS

Group Communication One-to-many communication: useful for distributed applications Issues: Group characteristics: Static/dynamic, open/closed Group addressing Multicast, broadcast, application-level multicast (unicast) Atomicity Message ordering Scalability CS677: Distributed OS

Putting it all together: Email User uses mail client to compose a message Mail client connects to mail server Mail server looks up address to destination mail server Mail server sets up a connection and passes the mail to destination mail server Destination stores mail in input buffer (user mailbox) Recipient checks mail at a later time CS677: Distributed OS

Email: Design Considerations Structured or unstructured? Addressing? Blocking/non-blocking? Buffered or unbuffered? Reliable or unreliable? Server architecture Scalability Push or pull? Group communication CS677: Distributed OS