湖南大学-信息科学与工程学院-计算机与科学系

Slides:



Advertisements
Similar presentations
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Advertisements

CS 425 / ECE 428 Distributed Systems Fall 2014 Indranil Gupta (Indy) August 26 – December 9, 2014 Lecture 1-29 Web: courses.engr.illinois.edu/cs425/ All.
DISTRIBUTED COMPUTING
Presented by Sujit Tilak. Evolution of Client/Server Architecture Clients & Server on different computer systems Local Area Network for Server and Client.
Distributed Systems Lecture 1: Overview CS425/CSE424/ECE428 Fall 2011 Nikita Borisov.
Introduction. Readings r Van Steen and Tanenbaum: 5.1 r Coulouris: 10.3.
Discrete Mathematics I 暨南大学 信息科学技术学院 计算机科学系 黄 战 副教授 离散数学 I (全英)
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Introduction. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
CMPF124 Basic Skills For Knowledge Workers Chapter 1 – Part 1 Introduction To Windows Operating Systems CMPF 112 : COMPUTING SKILLS.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
Lecture 1-1  2002, M. T. Harandi, J. Hou, and I. Gupta (modified Y. Hu) ECE 428 Distributed Systems Yih-Chun Hu August 25, 2005.
CS 425 / ECE 428 Distributed Systems Fall 2015 Indranil Gupta (Indy) August 25 – December 8, 2015 Lecture 1-29 Web: courses.engr.illinois.edu/cs425/ All.
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
Lecture 29-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) August 27-December 11, 2012 Lecture 1-29.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
1 TCS Confidential. 2 Objective : In this session we will be able to learn:  What is Cloud Computing?  Characteristics  Cloud Flavors  Cloud Deployment.
CT101: Computing Systems Introduction to Operating Systems.
Lecture 1 Book: Hadoop in Action by Chuck Lam Online course – “Cloud Computing Concepts” lecture notes by Indranil Gupta.
1.4 wired and wireless networks lesson 1
Introduction to threads
The Post Windows Operating System
Distributed Operating Systems Spring 2004
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CLOUD COMPUTING
Operating System & Application Software
Chapter 1: Introduction
Chapter 1: Introduction
Chapter Objectives In this chapter, you will learn:
Introduction to Distributed Platforms
Cloud computing-The Future Technologies
Distributed Operating Systems
Chapter 1: Introduction
Chapter 1: Introduction
CS525 Advanced Distributed Systems Spring 2009
Chapter 1: Introduction
CHAPTER 3 Architectures for Distributed Systems
Chapter 1: Introduction
Chapter 1: Introduction
Cloud Computing.
Chapter 1: Introduction
湖南大学-信息科学与工程学院-计算机与科学系
湖南大学-信息科学与工程学院-计算机与科学系
Unit 27: Network Operating Systems
Software Defined Networking (SDN)
CSC 724 Advanced Distributed Systems Introduction
Web: courses.engr.illinois.edu/cs425/
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Intro. To Operating Systems
Architectures of distributed systems Fundamental Models
Chapter 1: Introduction
Distributed computing deals with hardware
Architectures of distributed systems Fundamental Models
Introduction to Servers
Windows Virtual PC / Hyper-V
Chapter 2: Operating-System Structures
Web: courses.engr.illinois.edu/cs425/
Subject Name: Operating System Concepts Subject Number:
Chapter 1: Introduction
Chapter 1: Introduction
Cloud-Enabling Technology
Chapter 1: Introduction
Introduction to Operating Systems
Architectures of distributed systems Fundamental Models
Chapter 1: Introduction
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Chapter 2: Operating-System Structures
Chapter 1: Introduction
Chapter 1: Introduction
Presentation transcript:

湖南大学-信息科学与工程学院-计算机与科学系 云计算技术 陈果 副教授 湖南大学-信息科学与工程学院-计算机与科学系 邮箱:guochen@hnu.edu.cn 个人主页:1989chenguo.github.io https://1989chenguo.github.io/Courses/CloudComputing2018Spring.html

What we have learned What is cloud computing Cloud Networking Physical Structure Applications and network traffic Host networking virtualization Addressing & Routing Software-Defined Networking Architecture Inter-data-center networking Content distribution networks Client connectivity Cope with network performance

Part #2: Cloud Distributed System

Introduction to Cloud Distributed System Part #2: Cloud Distributed System Introduction to Cloud Distributed System Most materials from UIUC MOOC Thanks Indranil Gupta

So What IS a Distributed “System”? Let’s try to define the term!

Wait, Wait… Let’s first take a step back And define the term “Operating System” All machines (computers, devices, etc.) run an Operating System Also called an “OS” If you’ve used a computer, you’ve used an Operating System

Can you name some examples of Operating Systems? For big devices: Linux Mac OS X (High Sierra, Yosemite, Mavericks, Mountain Lion…) Windows (10, 8, 7, Vista, XP, …) Unix FreeBSD … For small devices: Android iOS TinyOS …

What is an Operating System? User interface to hardware (device drivers) Provides abstractions (processes, file system) Resource manager (scheduler) Means of communication (networking) …

FOLDOC definition (Free Online Dictionary of Computing) The low-level software which handles the interface to peripheral hardware, schedules tasks, allocates storage, and presents a default interface to the user when no application program is running. The OS may be split into a kernel which is always present and various system programs which use facilities provided by the kernel to perform higher-level house-keeping tasks, often acting as servers in a client-server relationship. Some would include a graphical user interface and window system as part of the OS, others would not. The operating system loader, BIOS, or other firmware required at boot time or when installing the operating system would generally not be considered part of the operating system, though this distinction is unclear in the case of a roamable operating system such as RISC OS. The facilities an operating system provides and its general design philosophy exert an extremely strong influence on programming style and on the technical cultures that grow up around the machines on which it runs. Let’s Repeat the Same Exercise for the term “Distributed System”

Can you name some examples of Distributed Systems? Client communicating with a server BitTorrent (peer to peer overlay) The Internet The Web (servers and clients) Hadoop Datacenters

NOT Distributed Systems The following are NOT distributed systems Humans Interacting with each other A standalone machine not connected to the network, and with only one process running on it Is there a Good Definition out there?

Definition from FOLDOC (Free Online Dictionary of Computing) A collection of (probably heterogeneous) automata whose distribution is transparent to the user so that the system appears as one local machine. This is in contrast to a network, where the user is aware that there are several machines, and their location, storage replication, load balancing and functionality is not transparent. Distributed systems usually use some kind of client-server organization. (Definition last updated in 1994)

The FOLDOC Definition for Distributed System is Incorrect A collection of (probably heterogeneous) automata whose distribution is transparent to the user so that the system appears as one local machine. This is in contrast to a network, where the user is aware that there are several machines, and their location, storage replication, load balancing and functionality is not transparent. Distributed systems usually use some kind of client-server organization. (Definition last updated in 1994)

The FOLDOC Definition for Distributed System is Incorrect A collection of (probably heterogeneous) automata whose distribution is transparent to the user so that the system appears as one local machine. This is in contrast to a network, where the user is aware that there are several machines, and their location, storage replication, load balancing and functionality is not transparent. Distributed systems usually use some kind of client-server organization. However, it’s never the case that all sites on the Web are all up or all down, e.g., site A may be up while B down; later B is up while A is down. Yet, the Web is a distributed system! Peer to peer systems like BitTorrent rely largely on only clients, no servers.

Definitions from Textbooks A distributed system is a collection of independent computers that appear to the users of the system as a single computer. [Andrew Tanenbaum] A distributed system is several computers doing something together. Thus, a distributed system has three primary characteristics: multiple computers, interconnections, and shared state. [Michael Schroeder]

Definitions Look Unsatisfactory to Us Why are these definitions short? Why do these definitions look inadequate to us? Because we are interested in the insides of a distributed system algorithms design and implementation maintenance study

Easy to Know when you See it The following are NOT distributed systems Humans Interacting with each other A standalone machine not connected to the network, and with only one process running on it

Easy to Know when you See it I shall not today attempt further to define the kinds of material I understand to be embraced within that shorthand description; and perhaps I could never succeed in intelligibly doing so. But I know it when I see it… [Potter Stewart, Associate Justice, US Supreme Court (talking about his interpretation of a technical term laid down in the law, case Jacobellis versus Ohio 1964) ]

A Working Definition of “Distributed System” A distributed system is a collection of entities, each of which is autonomous, programmable, asynchronous and failure- prone, and which communicate through an unreliable communication medium. Our interest in distributed systems involves algorithms, design and implementation, maintenance, study Entity=a process on a device (PC, PDA, mote) Communication Medium=Wired or wireless network

A Working Definition of “Distributed System” A distributed system is a collection of entities, each of which is autonomous, programmable, asynchronous and failure- prone, and which communicate through an unreliable communication medium. Eliminates “Humans Interacting with each other” Distinguishes distributed systems from parallel systems (e.g., multiprocessor systems)

Remember a Process?

Distributed System = Many Processes (broad-sense) Sending and Receiving Messages

Not Meant to be a Perfect Definition That’s only a working definition, good for this course Feel free to come up with your own definition for distributed systems! Try the exercise after you’ve seen the many different examples of distributed systems in this course!

A range of interesting problems for Distributed System designers P2P systems [Gnutella, Kazaa, BitTorrent] Cloud Infrastructures [AWS, Azure, Google Cloud] Cloud Storage [Key-value stores, NoSQL, Cassandra] Cloud Programming [MapReduce, Storm, Pregel] Coordination [Paxos, Leader Election, Snapshots] Managing Many Clients and Servers Concurrently [Concurrency Control, Replication Control] (and many more that you’ll see in this course!)

In solving these problems, Many Challenges Abound… Failures no longer the exception, but rather a norm Scalability 10K+ of machines Perabytes of data Asynchrony clock skew and clock drift Concurrency 10K+ of machines interacting with each other accessing the same data …

Looking Forward Over the next few weeks, we will see several core concepts of distributed systems Gossip Membership Distributed Hash Tables (DHTs) … and alternate this with their use in real systems Peer-to-peer systems (which use DHTs) Key-value/NoSQL stores (which use DHTs, gossip, membership)

湖南大学-信息科学与工程学院-计算机与科学系 Thanks! 陈果 副教授 湖南大学-信息科学与工程学院-计算机与科学系 邮箱:guochen@hnu.edu.cn 个人主页:1989chenguo.github.io https://1989chenguo.github.io/Courses/CloudComputing2018Spring.html