An Operating System for Multicore and Clouds: Mechanisms and Implementation 林孟諭 Dept. of Electrical Engineering National Cheng Kung University Tainan,

Slides:



Advertisements
Similar presentations
Threads, SMP, and Microkernels
Advertisements

Distributed Processing, Client/Server and Clusters
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Hadi Salimi Distributed Systems Labaratory, School of Computer Engineering, Iran University of Science and Technology, Fall
Chorus Vs Unix Operating Systems Overview Introduction Design Principles Programmer Interface User Interface Process Management Memory Management File.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Cache Coherent Distributed Shared Memory. Motivations Small processor count –SMP machines –Single shared memory with multiple processors interconnected.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Computer Systems/Operating Systems - Class 8
1. Overview  Introduction  Motivations  Multikernel Model  Implementation – The Barrelfish  Performance Testing  Conclusion 2.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
CS 550 Amoeba-A Distributed Operation System by Saie M Mulay.
3.5 Interprocess Communication
Chapter 13 Embedded Systems
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Computer Organization and Architecture
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Design and Implementation of a Single System Image Operating System for High Performance Computing on Clusters Christine MORIN PARIS project-team, IRISA/INRIA.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Computer System Architectures Computer System Software
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Fall 2000M.B. Ibáñez Lecture 01 Introduction What is an Operating System? The Evolution of Operating Systems Course Outline.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Distributed Systems: Concepts and Design Chapter 1 Pages
Architectural Support for Fine-Grained Parallelism on Multi-core Architectures Sanjeev Kumar, Corporate Technology Group, Intel Corporation Christopher.
Operating Systems Lecture 02: Computer System Overview Anda Iamnitchi
Challenges towards Elastic Power Management in Internet Data Center.
April 2000Dr Milan Simic1 Network Operating Systems Windows NT.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Processes Introduction to Operating Systems: Module 3.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Distributed System Services Fall 2008 Siva Josyula
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Department of Computer Science and Software Engineering
The Mach System Silberschatz et al Presented By Anjana Venkat.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 5.
Background Computer System Architectures Computer System Software.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
1 Cloud Computing, CS An OS for Multicore and Cloud + Microsoft Azure Platform.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
System Components Operating System Services System Calls.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
Threads by Dr. Amin Danial Asham. References Operating System Concepts ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, and GREG GAGNE.
Introduction to Operating Systems Concepts
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CLOUD COMPUTING
Chapter 1: Introduction
Operating System Structure
Storage Virtualization
Threads, SMP, and Microkernels
Multithreaded Programming
Chapter 2: Operating-System Structures
Introduction to Operating Systems
Prof. Leonardo Mostarda University of Camerino
Introduction To Distributed Systems
Database System Architectures
Chapter 2: Operating-System Structures
Presentation transcript:

An Operating System for Multicore and Clouds: Mechanisms and Implementation 林孟諭 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C

Outline Abstract Introduction – Benefits of a Single System Image Multicore and Cloud OS Challenges – Challenges - Scalability – Challenges - Variability of Demand – Challenges - Faults – Challenges - Programming Challenges Architecture – Microkernel – Messaging – Naming Case Studies – File System – Spawning Servers – Elastic Fleet Conclusion 2

Abstract Cloud computers and multicore processors are two emerging classes of computational hardware that have the potential to provide unprecedented compute capacity to the average user. In order for the user to effectively harness all of this computational power, operating systems (OSes) for these new hardware platforms are needed. In this work we describe the mechanisms and implementation of a factored operating system named fos. 3

Introduction (1/2) Cloud computing and Infrastructure as a Service (IaaS) promises a vision of boundless computation which can be tailored to exactly meet a user’s need, even as that need grows or shrinks rapidly. Thus, through IaaS systems, users should be able to purchase just the right amount of computing, memory, I/O, and storage to meet their needs at any given time. Unfortunately, current IaaS systems lack systemwide operating systems. So we propose a solution which provide a single system image OS, making IaaS systems as easy to use as multiprocessor systems. 4

Introduction (2/2) fos does so in two steps: First, fos factors system services of a full-featured OS by service. Second, fos further factors and parallelizes each system service into an internet-style collection, or fleet, of cooperating servers that are distributed among the underlying cores and machines. All of the system services within fos, and also the fleet of servers implementing each service, communicate via message passing, which maps transparently across multicore computer chips and across cloud computers via networking. 5

Benefits of a Single System Image (1/2) fos proposes to provide a single system image across multicores and the cloud as shown in Figure 1. 6

Benefits of a Single System Image (2/2) A single system image has the following advantages: Ease of administration: Administration of a single OS is easier than many machines. Transparent sharing: Devices can be transparently shared across the cloud. Informed optimizations: OS has local, low-level knowledge, thereby allowing it to make better, finer-grained optimizations than middleware systems. Consistency: OS has a consistent, global view of process management and resource allocation. Fault tolerance: Due to global knowledge, the OS can take corrective actions on faults. 7

Multicore and Cloud OS Challenges Cloud computing infrastructure and manycore processors present many common challenges with respect to the operating system. 1.Scalability 2.Variability of Demand 3.Faults 4.Programming Challenges 8

Challenges - Scalability Single performance of microprocessors has fallen off the exponential trend. In order to turn increasing transistor resources into exponentially increasing performance, microprocessor manufacturers have turned to integrating multiple processors onto a single die. The current multicore revolution promises drastic changes in fundamental system architecture, primarily in the fact that the number of general-purpose schedulable processing elements is drastically increasing. Therefore multicore OSes need to embrace scalability and make it a first order design constraint. 9

Challenges - Variability of Demand A major commonality between cloud computing and multicore systems is that the demand is not static. Furthermore, the variability of demand is much higher than in previous systems and the amount of available resources can be varied over a much broader range in contrast to single-core or fixed-sized cluster systems. The desire to reach optimal power utilization forces current system designers to match the available resources to the demand. 10

Challenges - Faults In multicore systems, hardware faults are becoming more common. As the hardware industry is continuously decreasing the size of transistors and increasing their count on a single chip, the chance of faults is rising. With hundreds or thousands of cores per chip, system software components must gracefully support dying cores and bit flips. In this regard, fault tolerance in modern OSes designed for multicore is becoming an essential requirement. 11

Challenges - Programming Challenges There is not a uniform programming model for communicating within a single multicore machine and between machines. The current programming model requires a cloud programmer to write an application to use intra-machine resources. In addition to the difficulty of programming these large-scale hierarchical systems, managing and load-balancing these systems is proving to be a daunting task as well. 12

Architecture (1/2) fos is an operating system which takes scalability and adaptability as the first order design constraints. In order to achieve the goal of scaling over multiple orders of magnitude in core count, fos uses the following design principles: Space multiplexing replaces time multiplexing. OS is factored into function-specific services, where each is implemented as a parallel, distributed service. OS adapts resource utilization to changing system needs. Faults are detected and handled by OS. 13

Architecture (2/2) 14

Microkernel fos is a microkernel operating system. The fos microkernel executes on every core in the system. fos uses a minimal microkernel OS design where the microkernel only provides a protected messaging layer, a name cache to accelerate message delivery, basic time multiplexing of cores, and an Application Programming Interface (API) to allow the modification of address spaces and thread creation. All other OS functionality and applications execute in user space. 15

Messaging (1/2) One operating system construct that is necessary for any multicore or cloud operating system is a form of inter-process communication and synchronization. fos solves this need by providing a simple process-to-process messaging API. There are several key advantages to using messaging for this mechanism. 1.Messaging can be implemented on top of shared memory, or provided by hardware, thus allowing this mechanism to be used for a variety of architectures. 2.Sharing of data becomes much more explicit in the programming model, thus allowing the programmer to think more carefully about the amount of shared data between communicating processes. 16

Messaging (2/2) Each process has a number of mailboxes that other processes may deliver messages to provided they have the credentials. fos presents an API that allows the application to manipulate these mailboxes. An application starts by creating a mailbox. Once the mailbox has been created, capabilities are created which consist of keys that may be given to other servers allowing them to write to the mailbox. Processes within fos are also able to register a mailbox under a given name. Other processes can then communicate with this process by sending a message to that name. 17

Naming (1/2) One unique approach to the organization of multiple communicating processes that fos takes is the use of a naming and lookup scheme. Processes are able to register a particular name for their mailbox. This namespace is a hierarchical URI (uniform resource identifier) much like a web address or filename. When an application messages a particular service, the nameserver will provide a member of the fleet that is best suited for handling the request. To accomplish this, all of the servers within the fleet register under a given name. 18

Naming (2/2) The advantage is that much of the complexity dealing with separate forms of inter-process communication in traditional cloud solutions is abstracted behind the naming and messaging API. Each process simply needs to know the name of the other processes it wishes to communicate with 19

Case Studies - File System (1/5) 20

Case Studies - File System (2/5) In Fig. 3, step 1: fos intercepts the application File system access. step 2: Bundles it in a message to be sent via the messaging layer. step 3: Since the destination server for this message is the file system server, fos queries the name cache and sends the message to the destination core. step 4: Once the file system server receives a new message in its incoming mailbox queue, it services the request. If the data requested by the application is cached, the server bundles it into a message and sends it back to the requesting application. 21

Case Studies - File System (3/5) step 5: Otherwise, it fetches the needed sectors from disk through the block device driver server by block messages. step 6: Represents the look-up of the block device driver in the name cache. Once the server is located, the fos microkernel places the message in the incoming mailbox queue of the block device driver server. Block device driver server: Provides Disk I/O operations and access to the physical disk. 22

Case Studies - File System (4/5) step 7: Response to the incoming message. step 8: The block device driver server processes the request enclosed in the incoming message. step 9: Fetches the sectors from disk. step 10~12: Encapsulates the fetched sectors in a message and sends it back to the file system server. step 13: File server processes the acquired sectors from the incoming mailbox queue. step 14: Encapsulates the required data into messages and send them back to the client application. 23

Case Studies - File System (5/5) step 15: Finally, in the client application, the libfos receives the data at its incoming mailbox queue and processes it in order to provide the file system access requested by the client application. 24

Case Studies - Spawning Servers (1/7) To expand a fleet by adding a new server, one must first spawn the new server process. Spawning a new process needs to take into account the machine on which the process should be spawned. Spawning begins with a call to the spawnProcess() function. By directly calling the spawn-Process function, parent processes can exercise greater control over where their children are placed by specifying constraints on what machine to run on, what kinds of resources the child will need, and locality hints to the scheduler. 25

Case Studies - Spawning Servers (2/7) 26

Case Studies - Spawning Servers (3/7) In Fig. 4, step 1: The spawnProcess function bundles the spawn arguments into a message, and sends that message to the spawn server’s incoming request mailbox. The spawn server must first determine which machine is most suitable for hosting that process. If the best machine for the process is the local machine, the spawn server sets up the address space for the new process and starts it. The spawn server then returns the PID (Process identifier) to the parent process. 27

Case Studies - Spawning Servers (4/7) If the local spawn server was unable to locate a suitable machine to spawn the process, it will initiate the procedure of spawning a new VM. step 2: Spawn server sends a message to the cloud interface server, describing what resources the new machine should have. step 3: The cloud interface server then spawns the new VM by sending a request to the cloud manager via Internet requests. step 4: When the cloud manager returns the VM ID, the cloud interface server waits until the new VM acquires an IP address and begins integration of the new VM into the fos single system image. 28

Case Studies - Spawning Servers (5/7) step 5: The cloud interface server notifies the local proxy server that there is a new VM at the given IP address that should be integrated into the system. step 6: The proxy server then connects to the remote proxy server at that IP and initiates the proxy bootstrap process. During the bootstrap process, the proxy servers exchange current name mappings, and notify the rest of the machines that there is a new machine joining the system. 29

Case Studies - Spawning Servers (6/7) When the local proxy server finishes this setup, it responds to the cloud interface server that the VM is fully integrated. The cloud interface server can then respond to the local spawn server to inform it that there is a new machine that is available to spawn new jobs. 30

Case Studies - Spawning Servers (7/7) In order to smooth the process of creating new VMs, the spawning service uses a pair of high- and low-water-marks, instead of spawning only when necessary. This allows the spawning service to mask VM startup time by preemptively spawning a new VM when the resources are low but not completely depleted. It also prevents the ping-ponging effect, where new VMs are spawned and destroyed unnecessarily when the load is near the new-VM threshold, and gives the spawn servers more time to communicate with each other and decide whether a new VM needs to be spawned. 31

Elastic Fleet (1/2) In the context of a fos fleet, if the load become too high for the fleet to handle requests at the desirable rate, then a watchdog process for the fleet can grow the fleet. The watchdog does this by spawning a new member of the fleet and initiating the handshaking process that allows the new server to join the fleet. During the handshaking process, existing members of the fleet are notified of the new member, and state is shared with the new fleet member. 32

Elastic Fleet (2/2) The fleet expansion (and shrinking) can be a global decision based on the health and resources available in a global sense, taking into consideration the existing servers, their load and location (latency) as well as desired throughput or monetary concerns from the system owner. By taking all of this information into consideration when making the scaling scheduling decision, fos can make a much more informed. 33

Conclusion Cloud computing and multicores have created new classes of platforms for application development; however, they come with many challenges. Our system, fos, seeks to surmount these challenges by presenting a single system interface to the user. fos is scalable and adaptive, thereby allowing the application developer to focus on application-level problem-solving without distractions from the underlying system infrastructure. 34