1 Janos Patrick Tullmann Flux Research Group University of Utah.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Threads, SMP, and Microkernels
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Janos A Java-oriented Active Network Operating System Jay Lepreau, Patrick Tullmann, Kristin Wright Wilson Hsieh, Godmar Back, many more... University.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Extensible Kernels Edgar Velázquez-Armendáriz September 24 th 2009.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
The Alta Operating System Patrick Tullmann Masters Thesis Defense University of Utah.
Department of Computer ScienceJanos Project Janos A Java-oriented Active Network Operating System Jay Lepreau, Patrick Tullmann, Kristin Wright Wilson.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
Multitasking JVMs Isolates and KaffeOS Presentation by James Rose.
New Results in Fluke/Flask Jay Lepreau Flux Group University of Utah July 13, 1998.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
1 © 1999 Citrix Systems Inc Java on Nemesis Tim Harris.
Extensible Kernels Mingsheng Hong. OS Kernel Types Monolithic Kernels Microkernels – Flexible (?) – Module Design – Reliable – Secure Extensible Kernels.
School of ComputingJanos Project Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java Godmar Back Wilson HsiehJay Lepreau School of.
CS533 Concepts of OS Class 16 ExoKernel by Constantia Tryman.
KaffeOS: Controlling Resources In A Multi-Process Java Virtual Machine Godmar Back.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Processes Part I Processes & Threads* *Referred to slides by Dr. Sanjeev Setia at George Mason University Chapter 3.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Paper Review Mach : A New Kernel Foundation For UNIX Development Chan Seok Kang 2013/02/26.
CS533 Concepts of Operating Systems Jonathan Walpole.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
1 Liquid Software Larry Peterson Princeton University John Hartman University of Arizona
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
February 24, 1998Salt Lake Java SIG Processes In Java Patrick Tullmann Flux Research Group University of Utah.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Nested Java Processes: OS Structure for Mobile Code Patrick Tullmann & Jay Lepreau September 10, 1998 Flux Project University of Utah
Java Security Model For Mobile Code Abdo Achkar. Mobile Code A mobile object is a “self contained piece” of executable code. Definition:  Code that can.
PART II OPERATING SYSTEMS LECTURE 8 SO TAXONOMY Ştefan Stăncescu 1.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
3.1 Operating System Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual.
Processes Introduction to Operating Systems: Module 3.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
CT1513 Introduction To java © A.AlOsaimi.
Operating Systems Structure what is the organizational principle?
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
UNIX Unit 1- Architecture of Unix - By Pratima.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Department of Computer Science and Software Engineering
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
The Mach System Silberschatz et al Presented By Anjana Venkat.
Introduction Why are virtual machines interesting?
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
CENG334 Introduction to Operating Systems 1 Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:
Multithreading The objectives of this chapter are: To understand the purpose of multithreading To describe Java's multithreading mechanism.
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Introduction to Operating Systems Concepts
Computer System Structures
CS 5204 Operating Systems Kernel Structures Godmar Back.
Operating System Structures
Kernel Design & Implementation
Operating System Structure
CS490 Windows Internals Quiz 2 09/27/2013.
KERNEL ARCHITECTURE.
Mach Kernel Kris Ambrose Kris Ambrose 2003.
CS 5204 Operating Systems Lecture 12
Introduction to Virtual Machines
Outline Operating System Organization Operating System Examples
Introduction to Virtual Machines
Presentation transcript:

1 Janos Patrick Tullmann Flux Research Group University of Utah

2 Janos JVM Extend Java virtual machine –Support OS-like processes –Fine-grained resource controls Flexible system –Run on OSKit == Active Node –Run as Unix process == Java OS

3 Ex: Network Administration AT&T MCI Victim Attacker

4 A Current Approach MCI’s Denial of Service Tracker (DoSTrack) –DoSTrack walks “upstream” following the trail to the attacker Shortcomings of DoSTrack –Only works in the MCI administrative domain –Requires a Cisco router and Perl5

5 Packet Forwarding MCIOther AT & T An Active Network Approach 1. Install extensible system on each router Safe language system 2. Add infrastructure to separate tasks Who & what is executing 3. Add support for hierarchical resource controls

6 Motivation Java Virtual Machine provides: –Safety –Platform independence Active Node OS needs: –Multiple “user” management –Resource management –Flexible & extensible control

7 Approach Traditional OS a good model –Hardware provides safety mechanism –OS provides management Fluke OS nested process model

8 Nested Process Model Alta Virtual Machine Root Task Untrusted ContainerTrusted Container Admin Component Hierarchical –Environment of process controlled by parents –Parent can manage all, few, or no resources of child –Any process can create sub-processes

9 Mapping an OS into Java Type safety replaces hardware page protections Bytecodes replace simple instructions Native methods replace privileged instructions All higher-level abstractions are equivalent

10 JavaOS Prototype: Alta Supports Fluke features for process management –Mimics Fluke structure –Provides parent process with control –No CPU controls Maintains backwards compatibility –Existing Java apps work (JDK 1.0)

11 JavaOS Prototype: Alta Maintains “whole JVM” illusion Per-process, flexible typespaces Inter-process sharing Sharing & resource control

12 User-level Sharing Child allocates -> Parent references –Harmless. If parent dies then child dies –Useful. Child can pass IPC arguments Sibling allocates -> Sibling references –Allowable. Parent trades communication costs for separation Parent allocates -> Child references –Standard server behavior –Cannot deallocate without child’s cooperation

13 Alta vs. Fluke Use similar internal organization –Both implement a “red line” [Back 1999] –Fully preemptible kernel Alta allows kernel / user data sharing Performance is weak –Improve Java –Improve structure of Alta

14 Contributions Prototype demonstrates applicability of OS abstractions to Java The Fluke NPM with a different protection mechanism Multiple application support in a JVM Type-safe sharing between inconsistent typespaces

15 Building an Active Node Expand resource management –CPU Inheritance Scheduling –Network access –Memory management Shared objects Garbage collection Flask security architecture Java optimizations and improvements

16 Memory: GC & Sharing CPU time for GC Charging for shared objects

17 Java Optimization Memory management –Stack allocation –Non-GC processes Optimized/restricted environments –Java code on the fast-path

18 Extend to EE Provide resource controls in ANTS –CPU –Network –Memory Challenges in applying to ANTS –Per-protocol –Subdivision of resources

the end