SEDA. How We Got Here On Tuesday we were talking about Multics and Unix. Fast forward 30-35 years. How has the OS (e.g., Linux) changed? Some of Multics.

Slides:



Advertisements
Similar presentations
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Advertisements

1 SEDA: An Architecture for Well- Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University.
CS533 Concepts of Operating Systems Jonathan Walpole.
SEDA: An Architecture for Well- Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University.
CS533 Concepts of Operating Systems Class 5 Event-Based Systems.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University of.
Capriccio: Scalable Threads for Internet Services ( by Behren, Condit, Zhou, Necula, Brewer ) Presented by Alex Sherman and Sarita Bafna.
CS533 Concepts of Operating Systems Class 20 Summary.
Phones OFF Please Operating System Introduction Parminder Singh Kang Home:
Capriccio: Scalable Threads for Internet Services Rob von Behren, Jeremy Condit, Feng Zhou, Geroge Necula and Eric Brewer University of California at Berkeley.
CS533 Concepts of Operating Systems Class 5 Event-Based Systems.
Chapter 13 Embedded Systems
Operating Systems - Introduction S H Srinivasan
CS533 Concepts of Operating Systems Class 2 Thread vs Event-Based Programming.
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
SEDA – Staged Event-Driven Architecture
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Processes Part I Processes & Threads* *Referred to slides by Dr. Sanjeev Setia at George Mason University Chapter 3.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services by, Matt Welsh, David Culler, and Eric Brewer Computer Science Division University.
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
Computer System Architectures Computer System Software
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Multithreading Allows application to split itself into multiple “threads” of execution (“threads of execution”). OS support for creating threads, terminating.
Composition and Evolution of Operating Systems Introduction to Operating Systems: Module 2.
Operating Systems Lecture 2 Processes and Threads Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS Design.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
PART II OPERATING SYSTEMS LECTURE 8 SO TAXONOMY Ştefan Stăncescu 1.
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.
OS2014 PROJECT 2 Supplemental Information. Outline Sequence Diagram of Project 2 Kernel Modules Kernel Sockets Work Queues Synchronization.
1 Combining Events and Threads for Scalable Network Services Peng Li and Steve Zdancewic University of Pennsylvania PLDI 2007, San Diego.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University of.
Capriccio: Scalable Threads for Internet Service
SEDA An architecture for Well-Conditioned, scalable Internet Services Matt Welsh, David Culler, and Eric Brewer University of California, Berkeley Symposium.
An Efficient Threading Model to Boost Server Performance Anupam Chanda.
SEDA: An Architecture for Scalable, Well-Conditioned Internet Services
Advanced Operating Systems Introduction and Overview.
1 Why Threads are a Bad Idea (for most purposes) based on a presentation by John Ousterhout Sun Microsystems Laboratories Threads!
UDel CISC361 Study Operating System principles - processes, threads - scheduling - mutual exclusion - synchronization - deadlocks - memory management -
Introduction to Operating Systems Concepts
Virtual Machine Monitors
Module 12: I/O Systems I/O hardware Application I/O Interface
SEDA: An Architecture for Scalable, Well-Conditioned Internet Services
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Advanced Operating Systems (CS 202)
Quick Introduction to OS
Lecture Note 0: Course Introduction
CSCI 315 Operating Systems Design
I/O Systems I/O Hardware Application I/O Interface
Operating System Concepts
Lecture Topics: 11/1 General Operating System Concepts Processes
Operating Systems Lecture 1.
CS533 Concepts of Operating Systems Class 7
Operating Systems CS451 Spring 1998
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Why Threads Are A Bad Idea (for most purposes)
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
Lecture Topics: 11/1 Hand back midterms
Introduction and History
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

SEDA

How We Got Here On Tuesday we were talking about Multics and Unix. Fast forward years. How has the OS (e.g., Linux) changed? Some of Multics crept back into Unix. Mapped files, shared libraries, shared memory, DLLs Added networking cc Berkeley sockets and select (2) Added threads cc Preemptive kernel threads Computers got cheap. Unix became the engine of the Internet.

To Begin… What is “resource virtualization”? “Existing OS strive to virtualize hardware resources in a way that is transparent to applications.” Examples? Who is it bad for? Why is it bad for them? Why do we have it if it is so bad? “Multiprogramming mindset” What has changed?

Internet Services and Overload “Internet services are not designed to share the machine with other applications.” Servers face overload conditions due to “flash crowds”, e.g., the “slashdot effect”. A new *ility to optimize: stability. Goal: “graceful degradation”. Servers want “application-specific adaptation in the face of overload.” How can a server know that it is in overload? How to adapt? Why is it application-specific?

Threads and Events Hypothesis: threads hide too much useful info from the app. They are “virtualization”, and virtualization is bad. Servers need threads for asynchrony in I/O (and for SMPs). Solution 1: async I/O interfaces. Solution 2: bound the number of threads. If we had full async I/O, we could build servers with one thread per processor. Flash SPED structure: Single Process Event Driven Can hide sync I/O interfaces behind objects that look asynchronous but use bounded concurrency internally.

SEDA Separate server apps into modules, objects, or “stages”. One or more internal threads processes events single input queue How is this different from processes with pipes? Monitors? Resource controllers “introspect” by monitoring input/output behavior of stages, and adapting. Load shedding Vary batching or concurrency Arbitrary application-specific responses

SEDA and the OS Model What does the app know, and when does it know it? “The basic resource management mechanisms provided by commodity OS, subect to application-level control, are adequate for the needs of Internet services.” “Threads are good, but restrict your use of them”? Is the problem with threads fundamental, or is it an implementation problem? How could we “fix” the OS?

SPED and SEDA SEDA is “a middle ground between threaded and event- driven designs”? Claims: Handles varying service demand times at stages Easy to debug Easy to synchronize

Also see… Matt Welsh’s slides are posted on the SEDA/Sandstorm page at Berkeley (linked through the readings page on the course web).