240-322 Cli/Serv.: Dist. Prog./21 Client/Server Distributed Systems v Objectives –explain the general meaning of distributed programming beyond client/server.

Slides:



Advertisements
Similar presentations
RPC Robert Grimm New York University Remote Procedure Calls.
Advertisements

Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
PZ13B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ13B - Client server computing Programming Language.
Chapter 1: Introduction
Reference: Message Passing Fundamentals.
REK’s adaptation of Prof. Claypool’s adaptation of
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Threads Clients Servers Code Migration Software Agents Summary
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Yousuf Surmust Instructor: Marius Soneru Course: CS550 Fall 2001
Learning Objectives Understanding the difference between processes and threads. Understanding process migration and load distribution. Understanding Process.
3.5 Interprocess Communication
Operating Systems - Introduction S H Srinivasan
Threads CSCI 444/544 Operating Systems Fall 2008.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
ADLB Update Recent and Current Adventures with the Asynchronous Dynamic Load Balancing Library Rusty Lusk Mathematics and Computer Science Division Argonne.
Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison Info. Eng. Research Lab (rm 101)
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
Cli/Serv.: JXTA/151 Client/Server Distributed Systems v Objective –explain JXTA, a support environment for P2P services and applications ,
Chapter 9 Message Passing Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere2 Introduction.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Group 1 Members: SMU CSE 8343 Wael Faheem Professor:Dr.M.KHALIL. Hazem Morsy Date: Poramate Ongsakorn Payal H Patel Samatha Devi Malka.
Interprocess Communication: ( ) CPE Operating Systems.
Architectures of distributed systems Fundamental Models
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Acknowledgments: Some of the slides are adapted from Prof.
PARALLEL APPLICATIONS EE 524/CS 561 Kishore Dhaveji 01/09/2000.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development.
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.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
Types of Operating Systems 1 Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Distributed Systems 2 Distributed Processing. Process A process is a logical representation of a physical processor that executes program code and has.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Distributed Systems Unit – 1 Concepts of DS By :- Maulik V. Dhamecha Maulik V. Dhamecha (M.Tech.)
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Real world OS programming Nezer J. Zaidenberg.  Create process/thread  File and directory I/O  I/O multiplexing  Sync and locking  Access system.
Intro to Distributed Systems Hank Levy. 23/20/2016 Distributed Systems Nearly all systems today are distributed in some way, e.g.: –they use –they.
Lecture 1: Network Operating Systems (NOS)
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Internet and Distributed Application Services
Last Class: Introduction
CS533 Concepts of Operating Systems
Chapter 3: Windows7 Part 4.
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Hwajung Lee ITEC452 Distributed Computing Lecture 2 Interprocess Communication (IPC): An Overview.
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Process Synchronization
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Lecture Topics: 11/1 Hand back midterms
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Cli/Serv.: Dist. Prog./21 Client/Server Distributed Systems v Objectives –explain the general meaning of distributed programming beyond client/server –look at the history of distributed programming , Semester 1, Distributed Programming Concepts

Cli/Serv.: Dist. Prog./22 Overview 1. Definition 2. From Parallel to Distributed 3. Forms of Communication 4. Data Distribution 5. Algorithmic Distribution 6. Granularity 7. Load Balancing 8. Brief History of Distributed Programming

Cli/Serv.: Dist. Prog./23 1. Definition v Distributed programming is the spreading of a computational task across several programs, processes, or processors. v Includes parallel (concurrent) and networked programming. v Definition is a bit vague.

Cli/Serv.: Dist. Prog./24 2. From Parallel to Distributed v Most parallel languages talk about processes: –these can be on different processors or on different computers v The implementor may choose to add language features to explicitly say where a process should run. v May also choose to address network issues (bandwidth, failure, etc.) at the language level. continued

Cli/Serv.: Dist. Prog./25 v Often resources required by programs are distributed, which means that the programs must be distributed. continued

Cli/Serv.: Dist. Prog./26 continued

Cli/Serv.: Dist. Prog./27 Network Transparency v Most users want networks to be as transparent (invisible) as possible: –users do not want to care which machine is used to store their files –they do not want to know where a process is running

Cli/Serv.: Dist. Prog./28 3. Forms of Communication v 1-to-1 communication v 1-to-many communication continued or These can be supported on top of shared memory or distributed memory platforms. processes

Cli/Serv.: Dist. Prog./29 v many-to-1 communication v many-to-many communication

Cli/Serv.: Dist. Prog./ Data Distribution v Divide input data between identical separate processes. v Examples: –database search –edge detection in an image –builders making a room with bricks

Cli/Serv.: Dist. Prog./211 Boss-Workers boss workers (all database search engines) part send part of database send answer

Cli/Serv.: Dist. Prog./212 v workers often need to talk to one another boss workers (all builders) send bricks done talking

Cli/Serv.: Dist. Prog./213 Boss - Eager Workers boss workers (all builders) ask for bricks send bricks talking

Cli/Serv.: Dist. Prog./214 Things to Note v The code is duplicated in every process. v The maximum no. of processes depends on the size of the task and difficulty of dividing data. v Talking can be very hard to code. v Talking is usually called communication, synchronisation or cooperation continued

Cli/Serv.: Dist. Prog./215 v Communication is almost always implemented using message passing. v How are processes assigned to processors?

Cli/Serv.: Dist. Prog./ Algorithmic Distribution v Divide algorithm into parallel parts / processes –e.g. UNIX pipes collectorwasher Drier Stacker dirty plates clean wet plates wipe dry plates dirty plates on table plates in cupboard

Cli/Serv.: Dist. Prog./217 Things to Note v Talking is simple: pass data to next process which ‘wakes up’ that process. v Talking becomes harder to code if there are loops. v How to assign processes to processors?

Cli/Serv.: Dist. Prog./218 Several Workers per Sub-task v Use both algorithmic and data distribution. v Problems: how to divide data? how to combine data? collectorwasherDrierStackerDrier collector

Cli/Serv.: Dist. Prog./219 Parallelise Separate Sub-tasks brick laying electrical wiring plumbing Build a house: paint b | (pl & e) | pt

Cli/Serv.: Dist. Prog./ Granularity Amount of data handled by a process: v Course grained : lots of data per process –e,g, UNIX processes v Fine grained : small amounts of data per process –e.g. UNIX threads, Java threads

Cli/Serv.: Dist. Prog./ Load Balancing v How to assign processes to processors? v Want to ‘even out’ work so that each processor does about the same amount of work. v But: –different processors have different capabilities –must consider cost of moving a process to a processor (e.g. network speed, load)

Cli/Serv.: Dist. Prog./ Brief History of (UNIX) Distributed Programming v 1970’s: UNIX was a multi-user, time-sharing OS –&, pipes –interprocess communication (IPC) on a single processor v mid 1980’s: System V UNIX –added extra IPC mechanisms: shared memory, messages, queues, etc. continued

Cli/Serv.: Dist. Prog./223 v late 1970's to mid 1980’s: ARPA –US Advanced Research Projects Agency –funded research that produced TCP/IP, sockets –added to BSD Unix 4.2 v mid-late 1980’s: utilities developed –telnet, ftp –r* utilities: rlogin, rcp, rsh –client-server model based on sockets continued

Cli/Serv.: Dist. Prog./224 v 1986: System V UNIX –released TL1, a set of socket-based libraries that support OSI –not widely used v late 1980’s: Sun Microsystems –NFS (Network File System) –RPC (Remote Procedure Call) –NIS (Network Information Services) continued

Cli/Serv.: Dist. Prog./225 v early 1990’s –POSIX threads (light-weight processes) –Web client-server model based on TCP/IP v mid 1990's: Java –Java threads –Java Remote Method Invocation (RMI) –CORBA continued

Cli/Serv.: Dist. Prog./226 v late 1990's / early 2000's –J2EE,.NET –peer-to-peer (P2P) u Napster, Gnutella, etc. –JXTA