Tessellation: Refactoring the OS around explicit resource containers with continuous adaptation 1 張力升 Dept. of Electrical Engineering National Cheng Kung.

Slides:



Advertisements
Similar presentations
AMUSE Autonomic Management of Ubiquitous Systems for e-Health Prof. J. Sventek University of Glasgow In collaboration.
Advertisements

Chapter 1 Introduction Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Introduction Abstract Views of an Operating System.
Threads, SMP, and Microkernels
COURSE: COMPUTER PLATFORMS
1 Hardware Support for Isolation Krste Asanovic U.C. Berkeley MURI “DHOSA” Site Visit April 28, 2011.
Chorus Vs Unix Operating Systems Overview Introduction Design Principles Programmer Interface User Interface Process Management Memory Management File.
Introduction CSCI 444/544 Operating Systems Fall 2008.
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
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
3.5 Interprocess Communication
Chapter 13 Embedded Systems
1 Introduction to Load Balancing: l Definition of Distributed systems. Collection of independent loosely coupled computing resources. l Load Balancing.
Chapter 11 Operating Systems
©Brooks/Cole, 2003 Chapter 7 Operating Systems Dr. Barnawi.
The Origin of the VM/370 Time-sharing system Presented by Niranjan Soundararajan.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
1 Operating System Overview Chapter 2 Advanced Operating System.
OPERATING SYSTEMS CPU SCHEDULING.  Introduction to CPU scheduling Introduction to CPU scheduling  Dispatcher Dispatcher  Terms used in CPU scheduling.
Tufts Wireless Laboratory School Of Engineering Tufts University “Network QoS Management in Cyber-Physical Systems” Nicole Ng 9/16/20151 by Feng Xia, Longhua.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Chapter 1. Introduction What is an Operating System? Mainframe Systems
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Fall 2000M.B. Ibáñez Lecture 01 Introduction What is an Operating System? The Evolution of Operating Systems Course Outline.
◦ What is an Operating System? What is an Operating System? ◦ Operating System Objectives Operating System Objectives ◦ Services Provided by the Operating.
Multicore Resource Management 謝政宏. 2 Outline Background Virtual Private Machines  Spatial Component  Temporal Component  Minimum and Maximum.
Processes and OS basics. RHS – SOC 2 OS Basics An Operating System (OS) is essentially an abstraction of a computer As a user or programmer, I do not.
Tessellation: Space-Time Partitioning in a Manycore Client OS Rose Liu 1,2, Kevin Klues 1, Sarah Bird 1, Steven Hofmeyr 3, Krste Asanovic 1, John Kubiatowicz.
Chapter 101 Multiprocessor and Real- Time Scheduling Chapter 10.
1 Multiprocessor and Real-Time Scheduling Chapter 10 Real-Time scheduling will be covered in SYSC3303.
1 Scheduling The part of the OS that makes the choice of which process to run next is called the scheduler and the algorithm it uses is called the scheduling.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
A Cyclic-Executive-Based QoS Guarantee over USB Chih-Yuan Huang,Li-Pin Chang, and Tei-Wei Kuo Department of Computer Science and Information Engineering.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Processes Introduction to Operating Systems: Module 3.
INFORMATION SYSTEM-SOFTWARE Topic: OPERATING SYSTEM CONCEPTS.
Adaptive Multi-Threading for Dynamic Workloads in Embedded Multiprocessors 林鼎原 Department of Electrical Engineering National Cheng Kung University Tainan,
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
Middleware Services. Functions of Middleware Encapsulation Protection Concurrent processing Communication Scheduling.
ITFN 3601 Introduction to Operating Systems Lecture 3 Processes, Threads & Scheduling Intro.
Lecture 5: Threads process as a unit of scheduling and a unit of resource allocation processes vs. threads what to program with threads why use threads.
Real-Time Musical Applications On An Experimental OS For Multi-Core Processors 林鼎原 Department of Electrical Engineering National Cheng Kung University.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Energy-Aware Resource Adaptation in Tessellation OS 3. Space-time Partitioning and Two-level Scheduling David Chou, Gage Eads Par Lab, CS Division, UC.
Unit III Bandwidth Utilization: Multiplexing and Spectrum Spreading In practical life the bandwidth available of links is limited. The proper utilization.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
1 Architecture and Behavioral Model for Future Cognitive Heterogeneous Networks Advisor: Wei-Yeh Chen Student: Long-Chong Hung G. Chen, Y. Zhang, M. Song,
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Tessellation: Space-Time Partitioning in a Manycore Client OS 林鼎原 Department of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C.
Copyright © Curt Hill More on Operating Systems Continuation of Introduction.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
Distributed Sequencing for Resource Sharing in Multi-Applicative Heterogeneous NoC Platforms 林鼎原 Department of Electrical Engineering National Cheng Kung.
Computer System Structures
Operating System Structure
Introduction to Operating System (OS)
CPU SCHEDULING.
Chapter 2 Operating System Overview
Chapter 6: Architectural Design
Presentation transcript:

Tessellation: Refactoring the OS around explicit resource containers with continuous adaptation 1 張力升 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C

Abstract  Adaptive Resource-Centric Computing (ARCC) enables a simultaneous mix of high-throughput parallel, real-time, and interactive applications.  This approach, embodied in the Tessellation many-core operating system, distributes resources to QoS domains called cells.  We examine the implementation of ARCC in the Tessellation OS, highlight Tessellation's ability to provide predictable performance 2

1.INTRODUCTION (1/2)  Modern applications consist of multiple interacting components, each with differing resource needs and quality- of- service (QoS) requirements.  A new paradigm for the interaction between application components and systems software is clearly needed.  Since resources are central to performance, predictability, and efficiency, we propose to utilize Adaptive Resource- Centric Computing (ARCC), as illustrated by Figure 1.  Resources are distributed to explicitly parallel, light-weight resource containers called cells, which provide stable execution environments for the software components running within them. 3

1.INTRODUCTION (2/2) 4

2. TESSELLATION ARCHITECTURE(1/5)  we summarize some of the key components of Tessellation OS, as illustrated by Figure 2.  The Tessellation kernel is a thin, hypervisor-like layer that provides support for ARCC by implementing cells and providing interfaces for resource adaptation and cell composition.  Tessellation uses two-level scheduling to separate resource allocation from resource usage.  This approach supports custom schedulers for efficient resource usage. 5

2. TESSELLATION ARCHITECTURE(2/5) 6

2.1 The Cell Model (3/5)  Cells provide the basic unit of computation and protection in Tessellation.  Applications in Tessellation are created by composing cells via efficient and secure channels.  Channels provide fast, user-level asynchronous message-passing between cells.  Tessellation OS virtualizes resources using space-time partitioning  a multiplexing technique that Divides the hardware into a sequence of simultaneously-resident spatial partitions.  Two-level scheduling in Tessellation separates global decisions about resource allocation to cells (first level) from management and scheduling of resources within cells (second level). 7

2.2 Service-Oriented Architecture (4/5)  Cells provide a convenient abstraction for building OS services with QoS guarantees.  Such services can reside in dedicated cells, have exclusive control over devices  Hence, each service can arbitrate access to its enclosed devices, and leverage its cell's performance isolation and customizable schedulers to offer service guarantees to other cells.  Two services in Tessellation that offer QoS guarantees are:  Network Service : which provides access to network adapters and guarantees that the data flows are processed with the agreed levels of throughput  GUI Service: which provides a windowing system with response-time guarantees for visual applications. 8

2.3 Adaptive Resource Allocation (5/5)  The Resource Allocation Broker (RAB) is a broker service that distributes resources to cells while attempting to satisfy competing system-wide goals  The RAB Service continuously monitors the cells' performance and compares it to target rates, adjusting resource allocations as required.  To do this, the RAB Service utilizes two sources of information:  Periodic performance reports, heartbeats [17], containing application- specific performance metrics from the cells  System-wide performance counter values, such as cache-miss statistics and energy measurements. 9

3.1 Type of Cells (1/3)  The Multiplexer Layer offers several time-multiplexing policies for cells to support applications with different timing requirements.  1) non-multiplexed (non-muxed) cells with dedicated access to cores;  2) time-triggered (TT) cells, which are active during periodic time windows;  3) event-triggered (ET) cells, which are activated upon event arrivals, but never exceed their assigned fraction of processing time;  4) best-effort (BE) cells with no time guarantees.  If feasible, a set of cells with different multiplexing policies harmoniously coexist and receive the specified time guarantees.  In this way, Tessellation offers precise control over cells' timing behavior 10

3.2 Space-Time Partitioning (2/3)  The muxers(multiplexer) collectively implement gang - scheduling in a decentralized manner.  They execute the same scheduling algorithm and rely on a high- precision global-time base to simultaneously activate a cell on multiple  For correct gang scheduling, the muxers need to maintain an identical view of the system's state whenever a scheduling decision is made.  Hence, each muxer makes not only its own scheduling decisions but also reproduces the decisions made by other (related) muxers with overlapping schedules. 11

3.3 Redistributing Resources among Cells (3/3)  To implement resource-distribution changes, each muxer has two scheduler instances: one active and one inactive.  Mux Layer first validates the new resource distribution and if successful, proceeds to serve the request.  Next,resets and prepares the inactive schedulers, and establishes the global time in the near future at which the muxers will synchronously exchange their active and inactive schedulers.  Then, the Mux Layer sends the muxers a message with the global time value and the system call returns.  Finally, at the specified time, the muxers exchange their schedulers and perform other actions related to the relocation of cells 12

4. USER-LEVEL RUNTIME (1/2)  Our current Tessellation prototype includes two user-level thread scheduling frameworks:  a preemptive one called PULSE (Preemptive User-Level SchEduling) enter(), mentioned earlier; tick(context), which is called whenever a timer tick occurs and receives the context of the interrupted thread; yield(), called when a thread yields; done(), called when a thread terminates. The  a cooperative one based on Lithe (LIquid THrEads).  To support adaptive resource allocation, user-level runtimes must adjust to changes in the number of hardware threads assigned to their host cells.  PULSE propagates changes in the number of hardware threads to the user-level scheduler. 13

4. USER-LEVEL RUNTIME (2/2)  When a cell loses hardware threads, the framework delivers the extra application contexts (from the revoked hardware threads) to the user-level scheduler's  If any of the saved contexts are scheduler contexts, PULSE uses a non- preemptive-auxiliary-scheduler that executes all scheduler contexts one by one until they enter application contexts.  Then PULSE communicates these application contexts to the user-level scheduler with the callback adapt(prev_num_harts, new_num_harts, context*).  PULSE implements this procedure so that the user-level scheduler is completely unaware that adaptation is occurring until the adapt callback is executed. 14

5.1 Adjusting Core Allocation (1/5)  This experiment is a simple feedback loop between a compute intensive application and the RAB Service.  The application used was the NAS EP benchmark which generates random numbers in an embarrassingly parallel manner.  We modified EP to compute the rate R at which random numbers were generated, and set a goal of R’ for the desired rate of random number generation.  We set 5 resource allocations, operating points, with core allocations of 2, 3, 4, 5, and 6.  When the performance is too low (i.e., R < R’), it allocates the next larger operating point;  when the performance is too high (i.e., R > R’ +ε ), it allocates the next smaller operating point.  We used ε = 0.1 to prevent oscillation between operating points. 15

5.1 Adjusting Core Allocation (2/5)  Figure 3 shows the performance of EP as the desired rate R’ changes periodically. 16

5.2 Adjusting Service Guarantees (3/5)  In this experiment, we show how the RAB Service adjusted the throughput reservation for a video player against changes in the incoming video stream.  Ideally, the RAB Service should allocate sufficient throughput for the video player to reach 24 fps without over provisioning.  To this end, we experimented with two simple reactive policies:  an application-specific policy, Papp, that exploits knowledge about the video stream's bandwidth demands; Papp uses reports that explicitly specify the size of the frames being received.  a general-purpose policy, Pgen, that operates only based on the video player's observed performance. On the other hand, uses reports with the average frame inter-arrival time 17

5.2 Adjusting Service Guarantees (4/5)  Figure 4 shows how the system reacts to changes in the incoming video stream for each policy type. 18

5.2 Adjusting Service Guarantees (5/5)  Figure 5 shows the video player's observed frame rate 19

6. CONCLUSIONS  Though we restricted our focus to client applications,the embedded systems domain presents a similar complex resource management problem that we believe Tessellation OS is capable of managing.  We believe that ARCC is essential for designing systems that can meet the rigorous responsiveness and efficiency demands of modern applications. 20