Andrea Camesi, Jarle Hulaas Software Engineering Laboratory Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland.

Slides:



Advertisements
Similar presentations
Jarle Hulaas Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland (Formerly at CUI, Uni Geneva) Dimitri Kalas
Advertisements

Towards Remote Policy Enforcement for Runtime Protection of Mobile Code Using Trusted Computing Xinwen Zhang Francesco Parisi-Presicce Ravi Sandhu
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
In Review JAVA C++ GUIs - Windows Webopedia.com.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
The road to reliable, autonomous distributed systems
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Introduction to Java The objectives of this chapter are: To describe the key aspects of Java To describe the Java software development kit (SDK) To explain.
Object Orientated Programming
got ? Research Project – April 1998 Hang Xia, Mark Wang, Richard S. Chang Updated: R Norman, August 1999.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
Programming Our First Java Program Yingcai Xiao. What to Do Set up for Java Programming Write our first Java Program with IDE Write our first Java Program.
An Energy Consumption Framework for Distributed Java-Based Systems Chiyoung Seo Software Architecture Research Group University of Southern California.
For more Lectures and Notes Visit
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
LESSON 1 INTRODUCTION Compiled By: Edwin O. Okech [Tutor, Amoud University] JAVA PROGRAMMING.
Advanced OOP MCS-3 OOP BSCS-3 Lecture # 1
Java Introduction 劉登榮 Deng-Rung Liu 87/7/15. Outline 4 History 4 Why Java? 4 Java Concept 4 Java in Real World 4 Language Overview 4 Java Performance!?
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
CSCI 3327 Visual Basic Chapter 1: Introduction to Visual Basic
Computer System Architectures Computer System Software
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Applets & Video Games 1 Last Edited 1/10/04CPS4: Java for Video Games Applets &
Java Lecture 16: Dolores Zage. WWW n Was a method for distributing passive information n added forms and image maps n interaction was only a new way to.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Chapter 1 Introduction. Goal to learn about computers and programming to compile and run your first Java program to recognize compile-time and run-time.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
UCSC All rights reserved. No part of this material may be reproduced and sold. 1 IT1202-Fundamentals Of Programming (Using JAVA) Interacting with.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
EMSOFT’02 Silicomp Research Institute JCOD 1 JCOD A Lightweight Modular Compilation Technology For Embedded Java Bertrand Delsart :
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Heavy and lightweight dynamic network services: challenges and experiments for designing intelligent solutions in evolvable next generation networks Laurent.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Getting Started With Java September 22, Java Bytecode  Bytecode : is a highly optimized set of instructions designed to be executed by the Java.
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
1 Introduction Read D&D Sec 1.8; Sec 1.13 THE Java tutorial -
ITP 109 Week 2 Trina Gregory Introduction to Java.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 15: Java Basics Fundamentals of Web Programming.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Introduction to JAVA Programming
JAVA PROGRAMMING Buzzwords. Simple: Less complex syntax than C++ Not as easy to design as Visual Basic Small size of interpreter.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Computer System Structures
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Chapter 1 Introduction to Computers, Programs, and Java
Walter Binder Giovanna Di Marzo Serugendo Jarle Hulaas
Java programming lecture one
Mark Claypool and Jonathan Tanner Computer Science Department
Adaptive Code Unloading for Resource-Constrained JVMs
Introduction CSC 111.
Java History, Editions, Version Features
Introducing Java.
Calypso Service Architecture
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

Andrea Camesi, Jarle Hulaas Software Engineering Laboratory Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland Joint work with Walter Binder Advances in Portable Resource Management

© Andrea Camesi and Jarle Hulaas 07/07/ Plan CPU Load Prediction Approach of CPU Load Measurements Future research directions Graphical Monitoring tool Layer structure Monitoring CPU consumption Portable Resource Management Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2

© Andrea Camesi and Jarle Hulaas 07/07/ Portable Resource Management Physical resources CPU, Memory, Network bandwidth, Battery power What is Resource Management ? Logical / conceptual resources Threads, Sockets, etc. Resource Management Views From outside (e.g. by the middleware) Accounting (non-intrusive monitoring) of consumption Controlling (possibly limiting) the consumption From inside Adaptive Resource-Aware applications Units of Measurement Bytecode instructions(CPU), Byte(Memory, Network bandwidth,..)

© Andrea Camesi and Jarle Hulaas 07/07/ Portable Resource Management What is it good for ? Software development Monitoring and profiling of Distributed Applications Benefits of Resource Management Quality of Service Billing for resource consumption Provisioning, load balancing Security with respect to Mobile Code Detecting/terminating Denial-of-Service attacks

© Andrea Camesi and Jarle Hulaas 07/07/ Portable Resource Management What is it good for ? Benefits of Resource Management Reliability and Flexibility Adapt behavior (algorithm) in front of resource saturation especially in Embedded Devices, Resource-Awareness Reliability Accountability (liability) for resource consumption interrupt a component and reclaim all its resources

© Andrea Camesi and Jarle Hulaas 07/07/ Plan CPU Load Prediction Approach of CPU Load Measurements Future research directions Graphical Monitoring tool Layer structure Monitoring CPU consumption Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Portable Resource Management Resource Awareness Heterogeneous Distributed System

© Andrea Camesi and Jarle Hulaas 07/07/ Resource Awareness Heterogeneous Distributed System No programming model for Resource-Awareness No available platform (java or other) to support Resource- Awareness Need portability Why portable ? Devise methods that are portable even across platforms/languages.Net, Resilient (?) Explore potential of portable Resource-Awareness strategies, portable units of measurement

© Andrea Camesi and Jarle Hulaas 07/07/ Plan CPU Load Prediction Approach of CPU Load Measurements Future research directions Graphical Monitoring tool Layer structure Monitoring CPU consumption Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Portable Resource Management Resource Awareness Heterogeneous Distributed System Programming models

© Andrea Camesi and Jarle Hulaas 07/07/ Resource Awareness Programming models Traditional Java thread-based Event-based (lower level) Programmer must provide fine grained applications Reactive model

© Andrea Camesi and Jarle Hulaas 07/07/ Per-thread and per-component accounting objects Net Mem CPU Resource-reified Multi-threaded Component (‘has a’ relation) invokes Resource Awareness callbacks Mem CPU Per-domain extensible management objects Net domain Memory domain CPU domain Programming models

© Andrea Camesi and Jarle Hulaas 07/07/ Plan CPU Load Prediction Approach of CPU Load Measurements Future research directions Graphical Monitoring tool Layer structure Monitoring CPU consumption Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Portable Resource Management Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2

© Andrea Camesi and Jarle Hulaas 07/07/ J-RAF2 Our solution: portable resource management through bytecode rewriting schemes Our General Approach with J-RAF2 The Java Resource Accounting Framework, 2nd edition + = As easy to deploy as any Java application across all kinds of devices If the overhead is reasonable, why not favor a portable approach ?

© Andrea Camesi and Jarle Hulaas 07/07/ J-RAF2 Execute Original Java Application (compiled) Rewrite bytecode Transformed, Resource-reified Version of Application Per-thread or per-component accounting objects Net CPU Mem Meta-level Execution hooks Our General Approach with J-RAF2

© Andrea Camesi and Jarle Hulaas 07/07/ Graphical Monitoring tool Layer structure Monitoring CPU consumption Plan CPU Load Prediction Approach of CPU Load Measurements Future research directions Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Portable Resource Management Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Graphical Monitoring tool Layer structure Monitoring CPU consumption

© Andrea Camesi and Jarle Hulaas 07/07/ Graphical Monitoring tool What is Graphical Monitoring ? Benefits of Graphical Monitoring Visualize the behavior of a server application Internet applications Quality of Service, Security, Reliability Enforce limits, reduce threads priority High-level layer code User-defined: Accounting, Control and Profiling applications

© Andrea Camesi and Jarle Hulaas 07/07/ Graphical Monitoring tool VM Native Code (unmanaged) (partly unmanaged native code) Bytecode rewriting engine CPU-manageable runtime Adaptable CPU management libraries Sample CPU-monitoring policy Layer structure

© Andrea Camesi and Jarle Hulaas 07/07/ Graphical Monitoring tool Monitoring the Java 2D Demo application: - Standalone - Applet Viewer - Netscape browser - Tomcat Servlet

© Andrea Camesi and Jarle Hulaas 07/07/ Graphical Monitoring tool Layer structure Monitoring CPU consumption Plan CPU Load Prediction Approach of CPU Load Measurements Future research directions Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Portable Resource Management Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Graphical Monitoring tool Layer structure Monitoring CPU consumption CPU Load Prediction Approach of CPU Load Measurements

© Andrea Camesi and Jarle Hulaas 07/07/ CPU Load Prediction What is CPU Load Prediction? Bytecode instruction counting (BIC) and CPU time They are distinct metrics for different purposes Profile based on BIC are precise, platform-independent, directly comparable across different environment, independent of CPU BIC could be useful to fix absolute limit of execution time BIC could be useful to evaluate algorithm complexity Estimate CPU time Number of executed bytecode instructions / elapsed CPU time Relationship between BIC and CPU time Intuitive relation: proportional, but not so simple No previous work Goal: find the exact relationship Use profiles based on BIC to accurately estimate CPU time Difficulties: JIT, GC, Bytecode weight

© Andrea Camesi and Jarle Hulaas 07/07/ CPU Load Prediction Benefits of CPU time Prediction J-RAF2 Increase the value of our tools Resource Aware Cross development: embedded device, e.g. PDA Heterogeneous Environment with mobile code: evaluate execution time of an application in a portable way User defined deterministic scheduler based on BIC as application specific Pros Better understanding of java applications and java environment Continuous metric give more information

© Andrea Camesi and Jarle Hulaas 07/07/ CPU Load Prediction Samples taken during a run of 201_compress on Linux machine Measurements

© Andrea Camesi and Jarle Hulaas 07/07/ CPU Load Prediction Number of bytecodes executed per millisecond of CPU time (with Sun JDK in interpreted mode, on a Sun Sparc 500 MHz machine under Solaris 9) Number of bytecodes executed per millisecond of CPU time (with Sun JDK in interpreted mode, on an Intel Pentium 2.6 GHz machine under Linux)

© Andrea Camesi and Jarle Hulaas 07/07/ Graphical Monitoring tool Layer structure Monitoring CPU consumption Plan CPU Load Prediction Approach of CPU Load Measurements Future research directions Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Portable Resource Management Resource Awareness Heterogeneous Distributed System Programming models Our General Approach with J-RAF2 Graphical Monitoring tool Layer structure Monitoring CPU consumption CPU Load Prediction Approach of CPU Load Measurements Future research directions

© Andrea Camesi and Jarle Hulaas 07/07/ Future research directions Associate different weights to sequences of bytecode instructions Increase the level of precision of measurements Use profiles based on BIC to accurately estimate CPU time Explore aspect-oriented programming as a way of defining Resource-Awareness strategies Explore different programming models for Resource-Aware systems Memory accounting Short-term Mid-term Long-term

© Andrea Camesi and Jarle Hulaas 07/07/ Thank you for your attention !