Java in sicherheits-kritischen Systemen: Das HIJA-Profil

Size: px
Start display at page:

Download "Java in sicherheits-kritischen Systemen: Das HIJA-Profil"

Transcription

1 Java in sicherheits-kritischen Systemen: Das HIJA-Profil... Korrektheitsnachweis für (echtzeit-) Java Anwendungen Dr. Fridtjof Siebert Director of Development, aicas GmbH Java Forum, Stuttgart, 7. Juli 2005

2 Java in sicherheits-kritischen Systemen: Das HIJA-Profil Who is aicas GmbH? Founded in March 2001 in Karlsruhe, Germany Products: Realtime Java implementations Today: 18 employees, offices in Karlsruhe (D), Berlin (D) and New Haven/CT (USA)

3 Java in sicherheits-kritischen Systemen: Das HIJA-Profil HIJA-Project: High-Integrity Java Project overview: 6th FP EC-funded project started June '04 duration: 27 months, until Aug'06 Project coordinator: The Open Group

4 HIJA-Project Project partners:

5 Java in sicherheits-kritischen Systemen: Das HIJA-Profil Project Overview Goals Identify suitable computational models Contribute to functional and nonfunctional analysis Develop profile based reference implementations Work based on results of earlier projects: HIDOORS, AJACS, Expresso, KeY, etc.

6 Java in sicherheits-kritischen Systemen: Das HIJA-Profil Project Overview Three main profiles are defined: All are subsetting the Java language, standard APIs and Realtime Specification for Java (RTS) Safety-Critical profile certification up to the highest criticality level (DO178B-A). Business-Critical applications Flexible Dynamic Systems (OSGi, etc.)

7 Java in sicherheits-kritischen Systemen: Das HIJA-Profil HIJA SC-Java Profile Guiding Principles: Conservative Approach no concepts that go too far for SC community Do not fragment the market: Base specification on standard Java and RTSJ SC-Java programs should run on any RTSJ JVM Use of annotations for off-line checking

8 Java in sicherheits-kritischen Systemen: Das HIJA-Profil Safety-Critical Profile Severe restrictions on Java and RTSJ: Clear distinction: initialization phase, mission phase No dynamic loading, thread creation, etc. during mission phase No GC Strict Partitioning: Memory: Local memory area for each task CPU utilization Use of annotations to document correctness of classes

9 Java in sicherheits-kritischen Systemen: Das HIJA-Profil Business-Critical Profile Relaxations compared to safety-critical profile: no distinction of phases (initialization vs. mission) dynamic features (GC, thread creation, etc.) permitted for non-critical tasks Strict Partitioning for critical tasks: Memory: Local memory area for each task CPU utilization Use of tools to proof correctness of critical tasks

10 Java in sicherheits-kritischen Systemen: Das HIJA-Profil HIJA Tools: Tools for correctness proof of application: DFA analysis to proof absence of runtime errors Formal verification using JML annotations (KeY) Model-Checker based tools to verify distributed system and multi-threading

11 HIJA Tool Chain Java in sicherheits-kritischen Systemen: Das HIJA-Profil Annotated Java Code Auxilary Annotations Network Analyzer javac Schedule Analyzer Model Checker *.class Data Flow Analyzer KeY Annotation Parser/Editor Builder Flow Information Annotation Checker WC Memory Usage Analyzer Constraints Executable WC Execution Time Analyzer Runtime Monitoring

12 Java in sicherheits-kritischen Systemen: Das HIJA-Profil HIJA Tools: DFA Start with the following calls = { main() (set of calls) values = { (set of variables value) Iterate do { calls := calls {m c calls "m()" c values := values { (a,x) : c calls "a = new X()" c) { (a,v) : c calls "a = b" c (b,v) values until fix point is reached;

13 Java in sicherheits-kritischen Systemen: Das HIJA-Profil HIJA Tools: DFA Difficulties that need to be managed Analysis accuracy has to be high enough Analysis effort must not explode for non-trivial applications Solution Store context information with each value and call Reduce context information for types that cause explosion

14 HIJA Tools: DFA... new Thread() { public void run() { synchronized(o1) { synchronized (o2) {.start(); new Thread() { public void run() { synchronized(o2) { synchronized (o1) {.start();...

15 Example DFA results > jamaica test -dfa NEEDEDSYNCS : 17 (17 locations out of 326) DEADLOCKS : 2 (2 locations out of 326) SCOPE CYCLES : 0 (0 locations out of 0) ILLEGAL ASSIGNMENTS : 0 (0 locations out of 167) CLASSCAST EXCEPTIONS : 0 (0 locations out of 33) ARRAY STORE EXCEPTIONS : 0 (0 locations out of 18) NULL POINTER EXCEPTIONS: 0 (0 locations out of 953) STACK USE: 1264 FOR THREAD: java/lang/finalizerthread STACK USE: 104 FOR THREAD: test$1: (test.java:6) STACK USE: 104 FOR THREAD: test$2: (test.java:14) STACK USE: 1764 FOR THREAD: INITIAL THREAD HEAP USE: FOR THREAD: java/lang/finalizerthread HEAP USE: 0 FOR THREAD: test$1: (test.java:6) HEAP USE: 0 FOR THREAD: test$2: (test.java:14) HEAP USE: FOR THREAD: INITIAL THREAD DFA DONE: 6431ms TRACED 334 VALUES and 1032 VALUE SETS.

16 HIJA Tools: KeY Formal verification using JML and KeY verifier private int[] array; public int size() { return array.length; public int getelement(int index) { return array[index];

17 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* */ int size() { return array.length; /* */ public int getelement(int index) { return array[index];

18 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* */ int size() { return array.length; /* public normal_behavior */ public int getelement(int index) { return array[index];

19 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); */ public int getelement(int index) { return array[index];

20 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* pure */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); */ public int getelement(int index) { return array[index];

21 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* pure */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); assignable \nothing; */ public int getelement(int index) { return array[index];

22 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* pure */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); assignable \nothing; ensures true; */ public int getelement(int index) { return array[index];

23 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* pure */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); assignable \nothing; ensures true; also public exceptional_behavior */ public int getelement(int index) { return array[index];

24 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* pure */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); assignable \nothing; ensures true; also public exceptional_behavior requires (index < 0) (index >= size()); */ public int getelement(int index) { return array[index];

25 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* pure */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); assignable \nothing; ensures true; also public exceptional_behavior requires (index < 0) (index >= size()); assignable \nothing; */ public int getelement(int index) { return array[index];

26 HIJA Tools: Formal verification using JML and KeY verifier private int[] array; public /* pure */ int size() { return array.length; /* public normal_behavior requires (index >= 0) && (index < size()); assignable \nothing; ensures true; also public exceptional_behavior requires (index < 0) (index >= size()); assignable \nothing; signals (ArrayIndexOutOfBoundsException) true; */ public int getelement(int index) { return array[index];

27 Java in sicherheits-kritischen Systemen: Das HIJA-Profil Current Status: First phase completed: Requirements document finished Methodology handbook draft Design Documents finished Tools development has started, first prototypes running

28 Conclusion The RTSJ is now the established standard for realtime Java development. The HIJA project will permit to extend the application of RTSJ to safety- and business-critical applications. Complementary tools for correctness verification of applications are provided. Project homepage:

Antonio Kung, Trialog. HIJA technical coordinator. Scott Hansen, The Open Group. HIJA coordinator

Antonio Kung, Trialog. HIJA technical coordinator. Scott Hansen, The Open Group. HIJA coordinator HIJA Antonio Kung, Trialog HIJA technical coordinator Scott Hansen, The Open Group HIJA coordinator 1 Presentation Outline HIJA project ANRTS platforms Requirements for ANRTS platforms Profiles based on

More information

Java Environment for Parallel Realtime Development Platform Independent Software Development for Multicore Systems

Java Environment for Parallel Realtime Development Platform Independent Software Development for Multicore Systems Java Environment for Parallel Realtime Development Platform Independent Software Development for Multicore Systems Ingo Prötel, aicas GmbH Computing Frontiers 6 th of May 2008, Ischia, Italy Jeopard-Project:

More information

aicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011

aicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011 aicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011 2 aicas Group aicas GmbH founded in 2001 in Karlsruhe Focus: Embedded

More information

Realtime Java. Christoph Neijenhuis

Realtime Java. Christoph Neijenhuis Realtime Java Christoph Neijenhuis Agenda 2 RT Problems in Java Solutions: RTSJ and others Guiding Principles Memory Management Threads Asynchronous Event Handling Scheduling Time Synchronization Implementations

More information

General Introduction

General Introduction Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime

More information

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication Integrated Development of Distributed Real-Time Applications with Asynchronous Communication Marc Schanne International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES) 26-28 September

More information

How To Write A Multi Threaded Software On A Single Core (Or Multi Threaded) System

How To Write A Multi Threaded Software On A Single Core (Or Multi Threaded) System Multicore Systems Challenges for the Real-Time Software Developer Dr. Fridtjof Siebert aicas GmbH Haid-und-Neu-Str. 18 76131 Karlsruhe, Germany siebert@aicas.com Abstract Multicore systems have become

More information

Reasoning about Safety Critical Java

Reasoning about Safety Critical Java Reasoning about Safety Critical Java Chris Marriott 27 th January 2011 Motivation Safety critical systems are becoming part of everyday life Failure can potentially lead to serious consequences Verification

More information

Validating Java for Safety-Critical Applications

Validating Java for Safety-Critical Applications Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore

More information

Practical Performance Understanding the Performance of Your Application

Practical Performance Understanding the Performance of Your Application Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance

More information

Facing the Challenges for Real-Time Software Development on Multi-Cores

Facing the Challenges for Real-Time Software Development on Multi-Cores Facing the Challenges for Real-Time Software Development on Multi-Cores Dr. Fridtjof Siebert aicas GmbH Haid-und-Neu-Str. 18 76131 Karlsruhe, Germany siebert@aicas.com Abstract Multicore systems introduce

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

2 Introduction to Java. Introduction to Programming 1 1

2 Introduction to Java. Introduction to Programming 1 1 2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage

More information

Java Mission Control

Java Mission Control Java Mission Control Harald Bräuning Resources Main Resource: Java Mission Control Tutorial by Marcus Hirt http://hirt.se/downloads/oracle/jmc_tutorial.zip includes sample projects! Local copy: /common/fesa/jmcexamples/jmc_tutorial.zip

More information

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.

More information

Unified Static and Runtime Verification of Object-Oriented Software

Unified Static and Runtime Verification of Object-Oriented Software Unified Static and Runtime Verification of Object-Oriented Software Wolfgang Ahrendt 1, Mauricio Chimento 1, Gerardo Schneider 2, Gordon J. Pace 3 1 Chalmers University of Technology, Gothenburg, Sweden

More information

Constant-Time Root Scanning for Deterministic Garbage Collection

Constant-Time Root Scanning for Deterministic Garbage Collection Constant-Time Root Scanning for Deterministic Garbage Collection Fridtjof Siebert Institut für Programmstrukturen and Datenorganisation (IPD) Universität Karlsruhe Am Fasanengarten 5 76128 Karlsruhe, Germany

More information

What s Cool in the SAP JVM (CON3243)

What s Cool in the SAP JVM (CON3243) What s Cool in the SAP JVM (CON3243) Volker Simonis, SAP SE September, 2014 Public Agenda SAP JVM Supportability SAP JVM Profiler SAP JVM Debugger 2014 SAP SE. All rights reserved. Public 2 SAP JVM SAP

More information

Know or Go Practical Quest for Reliable Software

Know or Go Practical Quest for Reliable Software Know or Go Practical Quest for Reliable Software Dr.-Ing. Jörg Barrho Dr.-Ing. Ulrich Wünsche AVACS Project meeting 25.09.2014 2014 Rolls-Royce Power Systems AG The information in this document is the

More information

Formal Specification and Verification of Avionics Software

Formal Specification and Verification of Avionics Software Formal Specification and Verification of Avionics Software June 7th, 2006 Outline 1 Introduction Software in the avionics domain Certification requirements Object-oriented technologies 2 Specification

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Monitoring and Managing a JVM

Monitoring and Managing a JVM Monitoring and Managing a JVM Erik Brakkee & Peter van den Berkmortel Overview About Axxerion Challenges and example Troubleshooting Memory management Tooling Best practices Conclusion About Axxerion Axxerion

More information

Identifying Performance Bottleneck using JRockit. - Shivaram Thirunavukkarasu Performance Engineer Wipro Technologies

Identifying Performance Bottleneck using JRockit. - Shivaram Thirunavukkarasu Performance Engineer Wipro Technologies Identifying Performance Bottleneck using JRockit - Shivaram Thirunavukkarasu Performance Engineer Wipro Technologies Table of Contents About JRockit Mission Control... 3 Five things to look for in JRMC

More information

Java Programming. Binnur Kurt binnur.kurt@ieee.org. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0.

Java Programming. Binnur Kurt binnur.kurt@ieee.org. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0. Java Programming Binnur Kurt binnur.kurt@ieee.org Istanbul Technical University Computer Engineering Department Java Programming 1 Version 0.0.4 About the Lecturer BSc İTÜ, Computer Engineering Department,

More information

Restraining Execution Environments

Restraining Execution Environments Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native

More information

Resource Aware Scheduler for Storm. Software Design Document. <jerry.boyang.peng@gmail.com> Date: 09/18/2015

Resource Aware Scheduler for Storm. Software Design Document. <jerry.boyang.peng@gmail.com> Date: 09/18/2015 Resource Aware Scheduler for Storm Software Design Document Author: Boyang Jerry Peng Date: 09/18/2015 Table of Contents 1. INTRODUCTION 3 1.1. USING

More information

https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois

https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois Runtime Verification, Inc. (RV): startup company aimed at bringing the best

More information

Debugging Java performance problems. Ryan Matteson matty91@gmail.com http://prefetch.net

Debugging Java performance problems. Ryan Matteson matty91@gmail.com http://prefetch.net Debugging Java performance problems Ryan Matteson matty91@gmail.com http://prefetch.net Overview Tonight I am going to discuss Java performance, and how opensource tools can be used to debug performance

More information

SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I)

SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I) SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics

More information

Effective Java Programming. measurement as the basis

Effective Java Programming. measurement as the basis Effective Java Programming measurement as the basis Structure measurement as the basis benchmarking micro macro profiling why you should do this? profiling tools Motto "We should forget about small efficiencies,

More information

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 Department Mission The Department of Computer Science in the College of Arts and Sciences

More information

Crash Course in Java

Crash Course in Java Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is

More information

VDM vs. Programming Language Extensions or their Integration

VDM vs. Programming Language Extensions or their Integration VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,

More information

VoiceXML Data Logging Overview

VoiceXML Data Logging Overview Data Logging Overview - Draft 0.3-20 August 2007 Page 1 Data Logging Overview Forum Tools Committee Draft 0.3-20 August 2007 Data Logging Overview - Draft 0.3-20 August 2007 Page 1 About the Forum: Founded

More information

Chapter 3 Operating-System Structures

Chapter 3 Operating-System Structures Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc. Tuning WebSphere Application Server ND 7.0 Royal Cyber Inc. JVM related problems Application server stops responding Server crash Hung process Out of memory condition Performance degradation Check if the

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

picojava TM : A Hardware Implementation of the Java Virtual Machine

picojava TM : A Hardware Implementation of the Java Virtual Machine picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer

More information

Java Troubleshooting and Performance

Java Troubleshooting and Performance Java Troubleshooting and Performance Margus Pala Java Fundamentals 08.12.2014 Agenda Debugger Thread dumps Memory dumps Crash dumps Tools/profilers Rules of (performance) optimization 1. Don't optimize

More information

Shared Address Space Computing: Programming

Shared Address Space Computing: Programming Shared Address Space Computing: Programming Alistair Rendell See Chapter 6 or Lin and Synder, Chapter 7 of Grama, Gupta, Karypis and Kumar, and Chapter 8 of Wilkinson and Allen Fork/Join Programming Model

More information

Monitoring Java enviroment / applications

Monitoring Java enviroment / applications Monitoring Java enviroment / applications Uroš Majcen uros@quest-slo.com Java is Everywhere You Can Expect More. Java in Mars Rover With the help of Java Technology, and the Jet Propulsion Laboratory (JPL),

More information

NetBeans Profiler is an

NetBeans Profiler is an NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that

More information

Rootbeer: Seamlessly using GPUs from Java

Rootbeer: Seamlessly using GPUs from Java Rootbeer: Seamlessly using GPUs from Java Phil Pratt-Szeliga. Dr. Jim Fawcett. Dr. Roy Welch. Syracuse University. Rootbeer Overview and Motivation Rootbeer allows a developer to program a GPU in Java

More information

Tutorial: Getting Started

Tutorial: Getting Started 9 Tutorial: Getting Started INFRASTRUCTURE A MAKEFILE PLAIN HELLO WORLD APERIODIC HELLO WORLD PERIODIC HELLO WORLD WATCH THOSE REAL-TIME PRIORITIES THEY ARE SERIOUS SUMMARY Getting started with a new platform

More information

Precise and Efficient Garbage Collection in VMKit with MMTk

Precise and Efficient Garbage Collection in VMKit with MMTk Precise and Efficient Garbage Collection in VMKit with MMTk LLVM Developer s Meeting Nicolas Geoffray nicolas.geoffray@lip6.fr 2 Background VMKit: Java and.net on top of LLVM Uses LLVM s JIT for executing

More information

An Oracle White Paper September 2013. Advanced Java Diagnostics and Monitoring Without Performance Overhead

An Oracle White Paper September 2013. Advanced Java Diagnostics and Monitoring Without Performance Overhead An Oracle White Paper September 2013 Advanced Java Diagnostics and Monitoring Without Performance Overhead Introduction... 1 Non-Intrusive Profiling and Diagnostics... 2 JMX Console... 2 Java Flight Recorder...

More information

Lua as a business logic language in high load application. Ilya Martynov ilya@iponweb.net CTO at IPONWEB

Lua as a business logic language in high load application. Ilya Martynov ilya@iponweb.net CTO at IPONWEB Lua as a business logic language in high load application Ilya Martynov ilya@iponweb.net CTO at IPONWEB Company background Ad industry Custom development Technical platform with multiple components Custom

More information

Performance Tools for Parallel Java Environments

Performance Tools for Parallel Java Environments Performance Tools for Parallel Java Environments Sameer Shende and Allen D. Malony Department of Computer and Information Science, University of Oregon {sameer,malony}@cs.uoregon.edu http://www.cs.uoregon.edu/research/paracomp/tau

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,

More information

Port of the Java Virtual Machine Kaffe to DROPS by using L4Env

Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Alexander Böttcher ab764283@os.inf.tu-dresden.de Technische Universität Dresden Faculty of Computer Science Operating System Group July 2004

More information

MAC A Run Time monitoring and checking tool

MAC A Run Time monitoring and checking tool MAC A Run Time monitoring and checking tool Gursharan Singh Mohd. Salman Mehmood Agenda Motivation Software Development Steps Methods New Paradigm (Runtime Verification) Materializing Runtime Verification

More information

Cloud Computing. Up until now

Cloud Computing. Up until now Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines

More information

Replication on Virtual Machines

Replication on Virtual Machines Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism

More information

WebSphere Architect (Performance and Monitoring) 2011 IBM Corporation

WebSphere Architect (Performance and Monitoring) 2011 IBM Corporation Track Name: Application Infrastructure Topic : WebSphere Application Server Top 10 Performance Tuning Recommendations. Presenter Name : Vishal A Charegaonkar WebSphere Architect (Performance and Monitoring)

More information

Certification of a Scade 6 compiler

Certification of a Scade 6 compiler Certification of a Scade 6 compiler F-X Fornari Esterel Technologies 1 Introduction Topic : What does mean developping a certified software? In particular, using embedded sofware development rules! What

More information

AN11241. AES encryption and decryption software on LPC microcontrollers. Document information

AN11241. AES encryption and decryption software on LPC microcontrollers. Document information AES encryption and decryption software on LPC microcontrollers Rev. 1 25 July 2012 Application note Document information Info Content Keywords AES, encryption, decryption, FIPS-197, Cortex-M0, Cortex-M3

More information

Formal verification of contracts for synchronous software components using NuSMV

Formal verification of contracts for synchronous software components using NuSMV Formal verification of contracts for synchronous software components using NuSMV Tobias Polzer Lehrstuhl für Informatik 8 Bachelorarbeit 13.05.2014 1 / 19 Problem description and goals Problem description

More information

Zing Vision. Answering your toughest production Java performance questions

Zing Vision. Answering your toughest production Java performance questions Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A

More information

Application Performance in the Cloud

Application Performance in the Cloud Application Performance in the Cloud Understanding and ensuring application performance in highly elastic environments Albert Mavashev, CTO Nastel Technologies, Inc. amavashev@nastel.com What is Cloud?

More information

Operating Systems and Networks

Operating Systems and Networks recap Operating Systems and Networks How OS manages multiple tasks Virtual memory Brief Linux demo Lecture 04: Introduction to OS-part 3 Behzad Bordbar 47 48 Contents Dual mode API to wrap system calls

More information

Java Coding Practices for Improved Application Performance

Java Coding Practices for Improved Application Performance 1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the

More information

Verum white paper study ASD SaaS Business Case for Philips Healthcare

Verum white paper study ASD SaaS Business Case for Philips Healthcare ASD SaaS Business Case for Philips Healthcare Author: Robert C. Howe Version: 1.0 EXECUTIVE SUMMARY Philips Healthcare Cardiovascular division has been using Verum s ASD:Suite for production software development

More information

Abstract Interpretation-based Static Analysis Tools:

Abstract Interpretation-based Static Analysis Tools: Abstract Interpretation-based Static Analysis Tools: Proving the Absence of Runtime Errors and Safe Upper Bounds on the Worst-Case Execution Time and Safe Upper Bounds on the Stack Usage Christian Ferdinand

More information

Tool - 1: Health Center

Tool - 1: Health Center Tool - 1: Health Center Joseph Amrith Raj http://facebook.com/webspherelibrary 2 Tool - 1: Health Center Table of Contents WebSphere Application Server Troubleshooting... Error! Bookmark not defined. About

More information

Oracle JRockit Mission Control Overview

Oracle JRockit Mission Control Overview Oracle JRockit Mission Control Overview An Oracle White Paper June 2008 JROCKIT Oracle JRockit Mission Control Overview Oracle JRockit Mission Control Overview...3 Introduction...3 Non-intrusive profiling

More information

Applying RAMS Principles to the Development of a Safety-Critical Java Specification. broad issues: reliability, availability, maintainability,

Applying RAMS Principles to the Development of a Safety-Critical Java Specification. broad issues: reliability, availability, maintainability, Applying RAMS Principles to the Development of a Safety-Critical Java Specification Almost all software for aerospace and defense applications is required to satisfy reliable, available, maintainable,

More information

Production time profiling On-Demand with Java Flight Recorder

Production time profiling On-Demand with Java Flight Recorder Production time profiling On-Demand with Java Flight Recorder Using Java Mission Control & Java Flight Recorder Klara Ward Principal Software Developer Java Platform Group, Oracle Copyright 2015, Oracle

More information

Profiling Java Applications. Kostis Kapelonis - Agilis SA

Profiling Java Applications. Kostis Kapelonis - Agilis SA Profiling Java Applications Kostis Kapelonis - Agilis SA The need for speed Topics Software Quality with FindBugs Using Jconsole Monitoring with Netbeans 6 Profiling CPU with Netbeans 6 Profiling Memory

More information

Preferred citation style for this presentation

Preferred citation style for this presentation Preferred citation style for this presentation Waraich, Rashid (2008) Parallel Implementation of DEQSim in Java, MATSim Workshop 2008, Castasegna, September 2008. 1 Parallel Implementation of DEQSim in

More information

Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ

Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ Rodrigo Gonçalves, Rômulo Silva de Oliveira, Carlos Montez LCMI Depto. de Automação e Sistemas Univ. Fed. de

More information

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111 Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo

More information

To Java SE 8, and Beyond (Plan B)

To Java SE 8, and Beyond (Plan B) 11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption

More information

Advances in Programming Languages

Advances in Programming Languages Advances in Programming Languages Lecture 13: Certifying Correctness Ian Stark School of Informatics The University of Edinburgh Tuesday 4 November 2014 Semester 1 Week 8 http://www.inf.ed.ac.uk/teaching/courses/apl

More information

Threads Scheduling on Linux Operating Systems

Threads Scheduling on Linux Operating Systems Threads Scheduling on Linux Operating Systems Igli Tafa 1, Stavri Thomollari 2, Julian Fejzaj 3 Polytechnic University of Tirana, Faculty of Information Technology 1,2 University of Tirana, Faculty of

More information

Cloud Monitoring. A challenging Application for Complex Event Processing. Bastian Hoßbach, Bernhard Seeger. ETH Zürich October 7, 2011

Cloud Monitoring. A challenging Application for Complex Event Processing. Bastian Hoßbach, Bernhard Seeger. ETH Zürich October 7, 2011 A challenging Application for Complex Event Processing ETH Zürich October 7, 2011 Agenda - Introduction and motivation - Design and implementation - Examples - Conclusion and research issues The NIST-Definition

More information

How To Develop An Open Play Context Framework For Android (For Android)

How To Develop An Open Play Context Framework For Android (For Android) Dynamix: An Open Plug-and-Play Context Framework for Android Darren Carlson and Andreas Schrader Ambient Computing Group / Institute of Telematics University of Lübeck, Germany www.ambient.uni-luebeck.de

More information

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture

More information

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM Note Before you use this information and the product it supports, read the

More information

PC Based Escape Analysis in the Java Virtual Machine

PC Based Escape Analysis in the Java Virtual Machine PC Based Escape Analysis in the Java Virtual Machine Manfred Jendrosch, Gerhard W. Dueck, Charlie Gracie, and AndréHinkenjann Abstract Current computer architectures are multi-threaded and make use of

More information

Optimizing Generation of Object Graphs in Java PathFinder

Optimizing Generation of Object Graphs in Java PathFinder Optimizing Generation of Object Graphs in Java PathFinder Milos Gligoric, Tihomir Gvero, Steven Lauterburg, Darko Marinov, Sarfraz Khurshid JPF Workshop 1.5.8 Bugs Six Decades Ago 1947: Harvard Mark II

More information

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2015 The third

More information

Angelika Langer www.angelikalanger.com. The Art of Garbage Collection Tuning

Angelika Langer www.angelikalanger.com. The Art of Garbage Collection Tuning Angelika Langer www.angelikalanger.com The Art of Garbage Collection Tuning objective discuss garbage collection algorithms in Sun/Oracle's JVM give brief overview of GC tuning strategies GC tuning (2)

More information

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2014 Jill Seaman

More information

Understanding Hardware Transactional Memory

Understanding Hardware Transactional Memory Understanding Hardware Transactional Memory Gil Tene, CTO & co-founder, Azul Systems @giltene 2015 Azul Systems, Inc. Agenda Brief introduction What is Hardware Transactional Memory (HTM)? Cache coherence

More information

Secure Software Programming and Vulnerability Analysis

Secure Software Programming and Vulnerability Analysis Secure Software Programming and Vulnerability Analysis Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Testing and Source Code Auditing Secure Software Programming 2 Overview

More information

Java Virtual Machine Locks

Java Virtual Machine Locks Java Virtual Machine Locks SS 2008 Synchronized Gerald SCHARITZER (e0127228) 2008-05-27 Synchronized 1 / 13 Table of Contents 1 Scope...3 1.1 Constraints...3 1.2 In Scope...3 1.3 Out of Scope...3 2 Logical

More information

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote. Specifications for ARINC 653 compliant RTOS & Development Environment Notes and terms of conditions Vendor shall note the following terms and conditions/ information before they submit their quote. 1.

More information

Lecture 03 (04.11.2013) Quality of the Software Development Process

Lecture 03 (04.11.2013) Quality of the Software Development Process Systeme hoher Qualität und Sicherheit Universität Bremen, WS 2013/14 Lecture 03 (04.11.2013) Quality of the Software Development Process Christoph Lüth Christian Liguda Your Daily Menu Models of Software

More information

OpenACC 2.0 and the PGI Accelerator Compilers

OpenACC 2.0 and the PGI Accelerator Compilers OpenACC 2.0 and the PGI Accelerator Compilers Michael Wolfe The Portland Group michael.wolfe@pgroup.com This presentation discusses the additions made to the OpenACC API in Version 2.0. I will also present

More information

AN OSEK/VDX-BASED MULTI-JVM FOR AUTOMOTIVE APPLIANCES

AN OSEK/VDX-BASED MULTI-JVM FOR AUTOMOTIVE APPLIANCES AN OSEK/VDX-BASED MULTI-JVM FOR AUTOMOTIVE APPLIANCES Christian Wawersich, Michael Stilkerich, Wolfgang Schröder-Preikschat University of Erlangen-Nuremberg Distributed Systems and Operating Systems Erlangen,

More information

introduction to program monitoring

introduction to program monitoring introduction to program monitoring CS 119 part II beyond assert and print course website http://www.runtime-verification.org/course09 action standing order: sell when price drops more than 2% within 1

More information

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) The JDK command to compile a class in the file Test.java is A) java Test.java B) java

More information

Performance Testing of Java Enterprise Systems

Performance Testing of Java Enterprise Systems Performance Testing of Java Enterprise Systems Katerina Antonova, Plamen Koychev Musala Soft Why Performance Testing? Recent studies by leading USA consultancy companies showed that over 80% of large corporations

More information

Monday, April 8, 13. Creating Successful Magento ERP Integrations

Monday, April 8, 13. Creating Successful Magento ERP Integrations Creating Successful Magento ERP Integrations Happy Together Creating Successful Magento ERP Integrations David Alger CTO / Lead Engineer www.classyllama.com A Little About Me Exclusively focused on Magento

More information

Performance Analysis and Visualization of SystemC Models. Adam Donlin and Thomas Lenart Xilinx Research

Performance Analysis and Visualization of SystemC Models. Adam Donlin and Thomas Lenart Xilinx Research Performance Analysis and Visualization of SystemC Models Adam Donlin and Thomas Lenart Xilinx Research Overview Performance Analysis!= Functional Verification Analysis and Visualization Overview Simulation

More information

Monitors, Java, Threads and Processes

Monitors, Java, Threads and Processes Monitors, Java, Threads and Processes 185 An object-oriented view of shared memory A semaphore can be seen as a shared object accessible through two methods: wait and signal. The idea behind the concept

More information

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris

More information

How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com

How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic

More information

Enterprise Manager Performance Tips

Enterprise Manager Performance Tips Enterprise Manager Performance Tips + The tips below are related to common situations customers experience when their Enterprise Manager(s) are not performing consistent with performance goals. If you

More information

SQL Server 2012 Optimization, Performance Tuning and Troubleshooting

SQL Server 2012 Optimization, Performance Tuning and Troubleshooting 1 SQL Server 2012 Optimization, Performance Tuning and Troubleshooting 5 Days (SQ-OPT2012-301-EN) Description During this five-day intensive course, students will learn the internal architecture of SQL

More information