Distributed Computing Systems Overview of Distributed Systems Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice.

Slides:



Advertisements
Similar presentations
CS-495 Distributed Systems Fabián E. Bustamante, Winter 2004 Introduction Distributed Systems Goals of Distributed Systems Hardware and Software Concepts.
Advertisements

Distributed Processing, Client/Server and Clusters
Database Architectures and the Web
1 Distributed Systems Alexis Delis Monday 6:00-9:00 Spring 2002
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.
Introduction Chapter 1.
REK’s adaptation of Prof. Claypool’s adaptation of
Chapter 1  Introduction 1 Introduction Chapter 1.
Based on last years lecture notes, used by Juha Takkinen.
CS4513 Distributed Computer Systems Introduction (Ch 1: , )
SKR 4401 Distributed Systems
ECI-M-811 Distributed Systems and Internetworking
Distributed Operating Systems Spring 2007
Introducing … Distributed Systems.
1 Introduction Chapter 1. 2 Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its.
Tutorials 1 1.What is the definition of a distributed system? 1.A distributed system is a collection of independent computers that appears to its users.
EECE 411: Design of Distributed Software Applications What is a Distributed System? You know when you have one … … when the failure of a computer you’ve.
Computer Science Lecture 1, page 1 CS677: Distributed OS Distributed Operating Systems Spring 2005 Prashant Shenoy UMass Computer Science
Distributed Systems CS 3850 Soufiane Noureddine Lectures MWF 14:00 – 14:50 (PE207D) Office Hours MW 11:00 – 12:00 (C520)
DISTRIBUTED COMPUTING
Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction.
Massively Distributed Database Systems Spring 2014 Ki-Joune Li Pusan National University.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Introduction Chapter 1. Definition of a Distributed System A distributed system [Tannenbaum & Steen] can be defined as a collection of independent computers.
Introduction to DISTRIBUTED SYSTEMS Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
1 Lecture 20: Parallel and Distributed Systems n Classification of parallel/distributed architectures n SMPs n Distributed systems n Clusters.
Advanced Operating Systems Welcome to this course, in Fall Semester Main TextBooks 1- Tanenbaum’s book 2- Chow’s Book 3- Singhal’s Book Other extra.
Introduction. Outline Definitions Examples Hardware concepts Software concepts Readings: Chapter 1.
Introduction to DISTRIBUTED COMPUTING Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Distributed Systems COEN 317 Introduction Chapter 1,2,3.
Types of Operating Systems
Univ. of TehranDistributed Operating Systems1 Advanced Operating Systems University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani.
OS2- Sem ; R. Jalili Introduction Chapter 1.
Kyung Hee University 1/41 Introduction Chapter 1.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
Distributed Computing Systems CSCI 4780/6780. Distributed System A distributed system is: A collection of independent computers that appears to its users.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 19/09/2007.
Introducing … Distributed Systems Paul Barry Muhammed Cinsdikici.
1 Introduction Chapter 1. 2 The Textbook  Andrew S. Tanenbaum & Maarten van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall, 2002.
OS2- Sem1-83; R. Jalili Introduction Chapter 1. OS2- Sem1-83; R. Jalili Definition of a Distributed System (1) A distributed system is: A collection of.
Distributed Systems: Principles and Paradigms By Andrew S. Tanenbaum and Maarten van Steen.
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.
Types of Operating Systems 1 Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
Distributed Systems Definition.
Distributed Computing Systems CSCI 6900/4900. Review Distributed system –A collection of independent computers that appears to its users as a single coherent.
Introduction Chapter 1. Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users.
Distributed Computing Systems CSCI 4780/6780. Scalability ConceptExample Centralized servicesA single server for all users Centralized dataA single on-line.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1 Distributed Processing Chapter 1 : Introduction.
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke.
Distributed Computing Systems CSCI 6900/4900. Review Definition & characteristics of distributed systems Distributed system organization Design goals.
TEXT: Distributed Operating systems A. S. Tanenbaum Papers oriented on: 1.OS Structures 2.Shared Memory Systems 3.Advanced Topics in Communications 4.Distributed.
Background Computer System Architectures Computer System Software.
Primitive Concepts of Distributed Systems Chapter 1.
Univ. of TehranDistributed Operating Systems1 Advanced Operating Systems University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani.
Introduction to Distributed Systems. Distributed System Definitions:  “A distributed system is a collection of independent computers that appear to the.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Introduction Chapter 1. Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users.
Distributed Operating Systems Spring 2004
Last Class: Introduction
Distributed Operating Systems
Definition of Distributed System
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
#01 Client/Server Computing
Advanced Operating Systems
Introduction To Distributed Systems
Introduction Chapter 1.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
#01 Client/Server Computing
Presentation transcript:

Distributed Computing Systems Overview of Distributed Systems Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, c2002.

Outline Overview Goals Software Client Server

The Rise of Distributed Systems Computer hardware prices falling, power increasing – If cars did same, Rolls Royce would cost 1 dollar and get 1 billion miles per gallon (with 200 page manual to open door) Network connectivity increasing – Everyone is connected with fat pipes, even when moving It is easy to connect hardware together – Layered abstractions have worked very well Definition: a distributed system is A collection of independent computers that appears to its users as a single coherent system

Depiction of a Distributed System Distributed system organized as middleware. Note that middleware layer extends over multiple machines. Users can interact with system in consistent way, regardless of where interaction takes place (e.g., RPC, memcached, … Note: Middleware may be part of application in practice Examples: - The Web - Processor pool - Shared memory pool - Airline reservation - Network game

Transparency in a Distributed System (Different forms of transparency in a distributed system) TransparencyDescription AccessHide differences in data representation and how a resource is accessed LocationHide where a resource is located MigrationHide that a resource may move to another location RelocationHide that a resource may be moved to another location while in use ReplicationHide that a resource may be copied ConcurrencyHide that a resource may be shared by several competitive users FailureHide the failure and recovery of a resource PersistenceHide whether a (software) resource is in memory or on disk

Scalability Problems As systems grow, centralized solutions are limited – Consider LAN name resolution (ARP) vs. WAN ConceptExample Centralized servicesA single server for all users Centralized dataA single on-line telephone book Centralized algorithms Doing routing based on complete information Ideally, can collect information in distributed fashion and distribute in distributed fashion But sometimes, hard to avoid (e.g., consider money in a bank) Challenges: geography, ownership domains, time synchronization Scaling techniques? Hiding latency, distribution, replication (next)

Scaling Technique: Hiding Communication Latency Especially important for interactive applications If possible, do asynchronous communication – continue working so user does not notice delay - Not always possible when client has nothing to do Instead, can hide latencies

Root DNS Servers com DNS servers org DNS serversedu DNS servers poly.edu DNS servers umass.edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers Scaling Technique: Distribution Client wants IP for (approximation): 1.Client queries root server to find. com DNS server 2.Client queries.com DNS server to get amazon.com DNS server 3.Client queries amazon.com DNS server to get IP address for ? Spread information/processing to more than one location

Scaling Technique: Replication Copy of information to increase availability and decrease centralized load – Example: File caching is replication decision made by client – Example: CDNs (e.g., Akamai) for Web – Example: P2P networks (e.g., BitTorrent) distribute copies uniformly or in proportion to use Issue: Consistency of replicated information – Example: Web browser cache or NFS cache – how to tell it is out of date?

Outline Overview(done) Goals(done) Software(next) Client Server

Software Concepts DOS (Distributed Operating Systems) NOS (Network Operating Systems) Middleware SystemDescriptionMain Goal DOS Tightly-coupled operating system for multi- processors and homogeneous multicomputers Hide and manage hardware resources NOS Loosely-coupled operating system for heterogeneous multicomputers (LAN and WAN) Offer local services to remote clients Middleware Additional layer atop of NOS implementing general-purpose services Provide distribution transparency (Next)

Distributing Single-Computer Operating Systems Separating applications from operating system code with microkernel Can extend to multiple computers (see next slide)

Distributed Operating Systems Typically, all hosts are homogenous But no longer have shared memory – Can try to provide distributed shared memory But tough to get acceptable performance, especially for large requests Provide message passing

Network Operating System OSes can be different (Windows or Linux) Typical services: rlogin, rcp – Fairly primitive way to share files

Network Operating System Can have one computer provide files transparently for others (NFS)

Network Operating System Different clients may mount the servers in different places Inconsistencies in view make NOSes harder for users than DOSes – But easier to scale by adding computers

Positioning Middleware Network OS not transparent. Distributed OS not independent of computers. – Middleware can help Often middleware built in-house to help use networked operating systems (distributed transactions, better comm, RPC) Unfortunately, many different standards

Outline Overview(done) Goals(done) Software(done) Client Server (next)

Clients and Servers Thus far, have not talked about organization of processes – Again, many choices but most widely used is client-server If can do so without connection, quite simple If underlying connection is unreliable, not trivial Resend. What if receive twice? Use TCP for reliable connection (most Internet apps) Not always appropriate for high-speed LAN connection or interactive applications

Client-Server Implementation Levels Example of Internet search engine – UI on client – Data level is server, keeps consistency – Processing can be on client or server

Multitiered Architectures Thin client (a) to Fat client (e) – (a) is simple echo terminal, (b) has GUI at client – (c) has user side processing (e.g., check Web form for consistency) – (d) and (e) popular for NOS environments (e.g., server has files only)

Multitiered Architectures: 3 tiers Server(s) may act as client(s), sometimes – Example: transaction monitor across multiple databases Also known as vertical distribution

Alternate Architectures: Horizontal Rather than vertical, distribute servers across nodes – Example: Web server farm for load balancing – Clients, too (peer-to-peer systems) – Most effective for read-heavy systems