1 © 1999 Citrix Systems Inc Java on Nemesis Tim Harris.

Slides:



Advertisements
Similar presentations
Java Virtual Machine (JVM). Lecture Objectives Learn about the Java Virtual Machine (JVM) Understand the functionalities of the class loader subsystem.
Advertisements

Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
JAVA Processors and JIT Scheduling. Overview & Literature n Formulation of the problem n JAVA introduction n Description of Caffeine * Literature: “Java.
The Alta Operating System Patrick Tullmann Masters Thesis Defense University of Utah.
Objects and Classes First Programming Concepts. 14/10/2004Lecture 1a: Introduction 2 Fundamental Concepts object class method parameter data type.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Lecture #4 Agenda Cell phones off & name signs out Review Questions? Objects The birds-and-the-bees talk.
Introduction to Java Programming
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
1 Programming Languages b Each type of CPU has its own specific machine language b But, writing programs in machine languages is cumbersome (too detailed)
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Extensible virtual machines Tim Harris. Extensible virtual machines Policy decisions can often be separated (safely) from implementation mechanisms Thread.
1 Janos Patrick Tullmann Flux Research Group University of Utah.
Basic Definitions Data Structures: Data Structures: A data structure is a systematic way of organizing and accessing data. Or, It’s the logical relationship.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
1 Further OO Concepts II – Java Program at run-time Overview l Steps in Executing a Java Program. l Loading l Linking l Initialization l Creation of Objects.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Introduction to .Net Framework
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
CS533 Concepts of Operating Systems Jonathan Walpole.
CS 403: Programming Languages Lecture 2 Fall 2003 Department of Computer Science University of Alabama Joel Jones.
Implement High-level Program Language on JVM CSCE 531 ZHONGHAO LIU ZHONGHAO LIU XIAO LIN.
Extensibility, Safety and Performance in the SPIN Operating System Ashwini Kulkarni Operating Systems Winter 2006.
SPL/2010 StackVsHeap. SPL/2010 Objectives ● Memory management ● central shared resource in multiprocessing RTE ● memory models that are used in Java and.
Lecture 10 : Introduction to Java Virtual Machine
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Group 3: Architectural Design for Enhancing Programmability Dean Tullsen, Josep Torrellas, Luis Ceze, Mark Hill, Onur Mutlu, Sampath Kannan, Sarita Adve,
 All calls to method toString and earnings are resolved at execution time, based on the type of the object to which currentEmployee refers.  Known as.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Object Oriented Software Development 4. C# data types, objects and references.
By: Cheryl Mok & Sarah Tan. Java is partially interpreted. 1. Programmer writes a program in textual form 2. Runs the compiler, which converts the textual.
Programming Languages and Paradigms Activation Records in Java.
Pattern Bridge. Definition Bridge is the structural pattern that separates abstraction from the implementation so that both of them can be changed independently.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Today… “Hello World” ritual. Brief History of Java & How Java Works. Introduction to Java class structure. But first, next slide shows Java is No. 1 programming.
Introduction to Programming 1 1 2Introduction to Java.
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
RealTimeSystems Lab Jong-Koo, Lim
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Java Thread Programming
Data Abstraction: The Walls
Operating System Structures
Topic: Java Garbage Collection
Before You Begin Nahla Abuel-ola /WIT.
Topic: Difference b/w JDK, JRE, JIT, JVM
Rean Griffith‡, Gail Kaiser‡ Presented by Rean Griffith
CS490 Windows Internals Quiz 2 09/27/2013.
Introduction Enosis Learning.
Java Virtual Machine Complete subject details are available at:
2.1. Compilers and Interpreters
Chapter 2: Operating-System Structures
Introduction Enosis Learning.
Chapter 3: Operating-System Structures
Adaptive Code Unloading for Resource-Constrained JVMs
Binding Times Binding is an association between two things Examples:
Outline Chapter 2 (cont) OS Design OS structure
Java Programming Introduction
JIT Compiler Design Maxine Virtual Machine Dhwani Pandya
Presentation transcript:

1 © 1999 Citrix Systems Inc Java on Nemesis Tim Harris

2 © 1999 Citrix Systems Inc Problems supporting Java Part of the ‘Nemesis philosophy’ is to expose real resources to applications What should be done if the application is written in Java? Why is Java different from C? How can the desire to expose real resources be reconciled with the high-level abstractions provided by the JVM? Even the CPU is virtualized in two ways: (i) processing time is shared between between tasks (ii) applications are written in Java bytecode rather than native code

3 © 1999 Citrix Systems Inc New thread scheduler New scheduler expresses CPU requirements as: Period & slice Extra time flag Can accommodate a variety of tasks, eg: 30% every 1ms  interactive program 5% every 100ms  background task extra time only  unimportant task Extra time is shared out according to priority hints

4 © 1999 Citrix Systems Inc Run-time compilation Provide mechanisms which allow the programmer to control the compiler and to implement their own policy. For example: Compile quickly on first invocation Compile with maximum optimization Compile in the background Never compile Provide a selection of default policies

5 © 1999 Citrix Systems Inc Background compilation

6 © 1999 Citrix Systems Inc Interoperability The aim is to be able to invoke operations on interfaces from the Nemesis environment without having to create native methods Two components: A new Java binding for the MIDDL interface definition language Run-time support for allowing invocations

7 © 1999 Citrix Systems Inc Extensible virtual machines Policy decisions can often be separated (safely) from implementation mechanisms Thread scheduling Object representation Primitive operations Run-time code generation One size does not fit all

8 © 1999 Citrix Systems Inc Motivating example Object placement in the heap Safety requires the objects are stored in correctly-sized blocks of memory that are not already in use May wish to control Where instances of different classes are stored Where instances allocated by different threads are stored Which free block is chosen, if there is a choice When the heap is expanded and when collection occurs

9 © 1999 Citrix Systems Inc Prototype XVM design >>> < Operations available to application Machine A Machine B Machine C >> Instance of code module Interface

10 © 1999 Citrix Systems Inc Ensuring safety At a coarse level, the selection of implementation machines and pre-defined modules available can be limited At a finer granularity, modules provide descriptions of their verification-time behavior in addition to their concrete implementation

11 © 1999 Citrix Systems Inc Demonstrations Thread scheduler control interface Unmodified X-windows clients Telnet client

12 © 1999 Citrix Systems Inc Contact details