EECS 582 Midterm Review Mosharaf Chowdhury EECS 582 – F16.

Slides:



Advertisements
Similar presentations
Virtual Memory (II) CSCI 444/544 Operating Systems Fall 2008.
Advertisements

Serverless Network File Systems. Network File Systems Allow sharing among independent file systems in a transparent manner Mounting a remote directory.
Availability in Globally Distributed Storage Systems
Lecture 6 – Google File System (GFS) CSE 490h – Introduction to Distributed Computing, Winter 2008 Except as otherwise noted, the content of this presentation.
CS533 Concepts of Operating Systems Class 20 Summary.
1 Introduction to Load Balancing: l Definition of Distributed systems. Collection of independent loosely coupled computing resources. l Load Balancing.
Operating Systems CS208. What is Operating System? It is a program. It is the first piece of software to run after the system boots. It coordinates the.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
Lecture 8 Epidemic communication, Server implementation.
I/O Systems and Storage Systems May 22, 2000 Instructor: Gary Kimura.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Server Types Different servers do different jobs. Proxy Servers Mail Servers Web Servers Applications Servers FTP Servers Telnet Servers List Servers Video/Image.
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
What is Concurrent Programming? Maram Bani Younes.
1 The Google File System Reporter: You-Wei Zhang.
Computer System Architectures Computer System Software
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster and powerful computers –shared memory model ( access nsec) –message passing.
Threads, Thread management & Resource Management.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Hints for Computer System Design
Operating Systems: Wrap-Up Questions answered in this lecture: What is an Operating System? Why are operating systems so interesting? What techniques can.
The Mach System Silberschatz et al Presented By Anjana Venkat.
GPFS: A Shared-Disk File System for Large Computing Clusters Frank Schmuck & Roger Haskin IBM Almaden Research Center.
The Google File System Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung Presenter: Chao-Han Tsai (Some slides adapted from the Google’s series lectures)
An Introduction to GPFS
I/O Errors 1 Computer Organization II © McQuain RAID Redundant Array of Inexpensive (Independent) Disks – Use multiple smaller disks (c.f.
Arrakis: The Operating System is the Control Plane
Processes and threads.
EECS 582 Midterm Review Mosharaf Chowdhury EECS 582 – W16.
Introduction to Distributed Platforms
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Introduction to Load Balancing:
OpenMosix, Open SSI, and LinuxPMI
Memory Caches & TLB Virtual Memory
Andy Wang COP 5611 Advanced Operating Systems
Processes and Threads Processes and their scheduling
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
Threads, Events, and Scheduling
/ Computer Architecture and Design
Introduction to Operating Systems
Capriccio – A Thread Model
EECS 582 Final Review Mosharaf Chowdhury EECS 582 – F16.
Operating System Concepts
Threads and Data Sharing
Fault Tolerance Distributed Web-based Systems
CSE 451: Operating Systems Winter 2009 Module 13 Redundant Arrays of Inexpensive Disks (RAID) and OS structure Mark Zbikowski Gary Kimura 1.
What is Concurrent Programming?
Threads Chapter 4.
Background and Motivation
Threads, Events, and Scheduling
CSE 451: Operating Systems Winter 2012 Redundant Arrays of Inexpensive Disks (RAID) and OS structure Mark Zbikowski Gary Kimura 1.
Multiprocessor and Real-Time Scheduling
What is Concurrent Programming?
/ Computer Architecture and Design
CS510 - Portland State University
Threads, Events, and Scheduling
Threads David Ferry CSCI 3500 – Operating Systems
Why Threads Are A Bad Idea (for most purposes)
Co-designed Virtual Machines for Reliable Computer Systems
Virtual Memory: Working Sets
Chapter 2 Operating System Overview
Why Threads Are A Bad Idea (for most purposes)
Operating System Overview
Why Threads Are A Bad Idea (for most purposes)
CS703 – Advanced Operating Systems
Chapter 13: I/O Systems.
Lecture Topics: 11/1 Hand back midterms
Presentation transcript:

EECS 582 Midterm Review Mosharaf Chowdhury EECS 582 – F16

Stats on the PC Members (23) EECS 582 – F16

Stats on the 18 Papers We’ve Reviewed EECS 582 – F16

Stats on the 18 Papers We’ve Reviewed EECS 582 – F16

Classics EECS 582 – F16

Classics UNIX Simplicity is king when you must support diverse applications Usage-driven/user-driven design Everything is a file! System R The first relational database implementation Independence of storage and compute Find the “right” metric and do everything when you must deliver performance (i.e., specialization instead of generalization) EECS 582 – F16

Storage and File Systems EECS 582 – F16

Storage and File Systems RAID Industry standard for durable, high-performance storage Parallelize for performance and fault-tolerance One size doesn’t fit all LFS Entire file system is a sequentially-accessed log Periodically garbage collect to avoid fragmentation Great for SSDs EECS 582 – F16

Kernel EECS 582 – F16

Kernel Exokernel Multikernel Minimal kernel instead of a full-fledged one End-to-end argument: only provide services that everyone needs to balance between specialization (performance) and generalization (applicability) Multikernel Make communication explicit when you must communicate Shared-nothing design EECS 582 – F16

Kernel IX Separate control and data planes to provide I/O performance Kernels aren’t inherently slow; it’s about how we do things Commuter Interfaces impact scalable design If interface is commutative, you can find a scalable design (avoid locking and blocking among multiple dependent threads) EECS 582 – F16

Virtual Memory and RPC EECS 582 – F16

Virtual Memory and RPC Memory Coherence RPC Shared-everything design requires frequent updates Dynamic page ownership management makes decentralized solutions run faster Keeping things coherent is expensive but provides simple programming models RPC Makes distributed nature more explicit while keeping the same programming model as a non-distributed system This paper focused on hiding RPC calls No shared memory EECS 582 – F16

Concurrency and Scheduling EECS 582 – F16

Concurrency and Scheduling SEDA Thread- and event-based programming models both have their advantages and drawbacks (ease of programming vs. scalability and performance) It is possible to find a balance between the two May allow better performance and correctness tracing Scheduler Activations N:M model for mapping user threads to kernel threads User-level control via kernel-user cooperation Lottery Randomized proportional scheduling Fair in the long-term, but short-term behavior is unpredictable EECS 582 – F16

Reliability and Fault Tolerance EECS 582 – F16

Reliability and Fault Tolerance Nooks Failure is inevitable Isolate it and start again Command logging and recreate the state transparently instead of restarting RaceTrack Detects data races using locksets and happens-before relationship Warning during runtime and code-segment correlation post facto Adaptive granularity: split memory into chunks for fine-grained analysis when they suspect race in the larger chunk EECS 582 – F16

Virtual Machines EECS 582 – F16

Virtual Machines Xen and ESX Arrakis Virtualization comes in many shapes and forms (e.g., full virtualization vs paravirtualization) Choose the one that fits your requirements (e.g., performance, consolidation, deployability, nesting!) Fit for your workload Arrakis Hardware-supported I/O virtualization enables efficient separation of control and data planes Borrows from Exokernel; requires app changes and hardware support Multiplexing across mutually untrusting applications (again w/ hw support) EECS 582 – F16