1 OSGi and Real Time Kelvin Nilsen, Ph.D., CTO. 2 For “traditional soft real time” with J2ME It would be nice if each OSGi bundle could: –Establish an.

Slides:



Advertisements
Similar presentations
The Leading Edge of Real-Time and Embedded Solutions Real Time OSGi Glenn Coates, Sr. Design Consultant.
Advertisements

SLA-Oriented Resource Provisioning for Cloud Computing
Operating Systems Process Scheduling (Ch 3.2, )
Chapter 10 Operating Systems.
Chapter 8 Runtime Support. How program structures are implemented in a computer memory? The evolution of programming language design has led to the creation.
Productivity in Real-Time © Aonix Improving Abstraction, Encapsulation, and Performance within Mixed-Mode Real-Time Java Applications Kelvin Nilsen, CTO.
Aarhus University, 2005Esmertec AG1 Implementing Object-Oriented Virtual Machines Lars Bak & Kasper Lund Esmertec AG
CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
1 Janos Patrick Tullmann Flux Research Group University of Utah.
Enhancing the Platform Independence of the Real-Time Specification for Java Andy Wellings, Yang Chang and Tom Richardson University of York.
Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes.
Processes CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
1 Memory Model of A Program, Methods Overview l Memory Model of JVM »Method Area »Heap »Stack.
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.
BINA RAMAMURTHY UNIVERSITY AT BUFFALO System Structure and Process Model 5/30/2013 Amrita-UB-MSES
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
Object Based Programming. Summary Slide  Instantiating An Object  Encapsulation  Inheritance  Polymorphism –Overriding Methods –Overloading vs. Overriding.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Introduction to Object Oriented Programming. Object Oriented Programming Technique used to develop programs revolving around the real world entities In.
Real-Time Java Martin Schöberl. Real Time Java2 Overview What are real-time systems Real-time specification for Java RTSJ issues, subset Real-time profile.
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
Java threads and locks1 OS Lecture 5 Java threads.
Copyrighted material John Tullis 10/6/2015 page 1 Performance: WebSphere Commerce John Tullis DePaul Instructor
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.
Compilation Technology © 2007 IBM Corporation CGO Performance Overheads In Real-Time Java Programs Mark Stoodley and Mike Fulton Compilation.
1 Comp 104: Operating Systems Concepts Java Development and Run-Time Store Organisation.
CSSE501 Object-Oriented Development. Chapter 12: Implications of Substitution  In this chapter we will investigate some of the implications of the principle.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Introduction to Object Oriented Programming CMSC 331.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Concurrent and.
4P13 Week 3 Talking Points 1. Process State 2 Process Structure Catagories – Process identification: the PID and the parent PID – Signal state: signals.
CSE501 Yin Yan. RT Linux RTEMS Research in Reliable Mobile System Blue seal RTDroid Record and replay Resource Accounting.
Processes CS 6560: Operating Systems Design. 2 Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode.
Introduction to Java Chapter 7 - Classes & Object-oriented Programming1 Chapter 7 Classes and Object-Oriented Programming.
David F. Bacon Perry Cheng V.T. Rajan IBM T.J. Watson Research Center ControllingFragmentation and Space Consumption in the Metronome.
1 Isolating Web Programs in Modern Browser Architectures CS6204: Cloud Environment Spring 2011.
Lecture 7 Page 1 CS 111 Summer 2013 Another Option Fixed partition allocations result in internal fragmentation – Processes don’t use all of the fixed.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
Common Language Runtime Introduction  The common language runtime is one of the most essential component of the.Net Framework.  It acts.
The Execution System1. 2 Introduction Managed code and managed data qualify code or data that executes in cooperation with the execution engine The execution.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Spark on Entropy : A Reliable & Efficient Scheduler for Low-latency Parallel Jobs in Heterogeneous Cloud Huankai Chen PhD Student at University of Kent.
Embedded Real-Time Systems
Memory Management What if pgm mem > main mem ?. Memory Management What if pgm mem > main mem ? Overlays – program controlled.
Progress Report 07/06 Simon.
Doing Firm-Real-Time With J2SE APIs Delvin Defoe Center for Distributed Object Computing Department of Computer Science and Engineering Washington University.
Core Java Garbage Collection LEVEL – PRACTITIONER.
Processes and threads.
Copyright ©: Nahrstedt, Angrave, Abdelzaher
Before You Begin Nahla Abuel-ola /WIT.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Mechanism: Address Translation
CS533 Concepts of Operating Systems
Computing Resource Allocation and Scheduling in A Data Center
System Structure and Process Model
System Structure and Process Model
System Structure B. Ramamurthy.
The Operating System Memory Manager
System Structure and Process Model
Closure Representations in Higher-Order Programming Languages
Lecture Topics: 11/1 General Operating System Concepts Processes
- When you approach operating system concepts there might be several confusing terms that may look similar but in fact refer to different concepts:  multiprogramming, multiprocessing, multitasking,
CS510 Operating System Foundations
Mechanism: Address Translation
M S COLLEGE ART’S, COMM., SCI. & BMS
Run-time environments
Progress Report 04/27 Simon.
Presentation transcript:

1 OSGi and Real Time Kelvin Nilsen, Ph.D., CTO

2 For “traditional soft real time” with J2ME It would be nice if each OSGi bundle could: –Establish an expected memory utilization, and –An expected CPU consumption –Based on experimentation on the targeted platform to determine resource needs on this platform –And have these resource budgets “guaranteed” by the platform

3 New Standards Emerging for Safety-Critical Java No garbage collection Safe stack allocation Very small memory footprint Simplicity of run-time environment Throughput efficiency of optimized C We need an OSGi-like capability in this environment, but existing OSGi is too big

4 The Thread Stack Model Initially, the run-time stack (grows downward) for the main thread represents all non-immortal memory.

5 The Thread Stack Model The main thread may spawn additional threads, setting aside part of its own stack to represent the stack memory for the spawned threads. Memory for first spawned thread’s stack Memory for second spawned thread’s stack Memory for third spawned thread’s stack Any of the spawned threads may in turn carve up its stack in order to spawn “grandchildren” threads.

6 The Thread Stack Model Individual threads populate their run-time stacks as appropriate. Each thread’s scoped objects can see scoped objects allocated In more outer-nested scopes of the same thread. And a child thread may see scoped objects that reside in the parent thread’s stack above the point at which the child thread was spawned. But objects residing in the parent thread’s stack below the point from which the child thread was spawned are not visible to the child thread. And outer-nested objects are not allowed to see objects residing in more inner-nested scopes.

7 The Thread Stack Model The parent thread is required to join with its spawned threads before returning from the context from which it spawned those threads.. Thread-1 Thread-3 Thread-2 After the child threads have joined with the parent thread, their memory is fully reclaimed (and defragmented).

8 Dynamic Class Loading Classes are loaded into ThreadStack memory as scoped objects Loaded classes may be seen only by called methods and descendent threads

9 Loading classes within thread stacks The main thread may dynamically load classes into its “private” scope. These loaded classes can be seen by called methods. Memory for first spawned thread’s stack Memory for second spawned thread’s stack Memory for third spawned thread’s stack Subsequently spawned subthreads may also see the loaded classes. In fact, the spawned subthreads may even be instances of a dynamically loaded NoHeapRealtimeThread subclass.

10 Rebudgeting memory Any thread may voluntarily release its memory and have that memory rebudgeted to serve other purposes Memory for first spawned thread’s stack Memory for second spawned thread’s stack Memory for third spawned thread’s stack

11 Rebudgeting memory Any thread may voluntarily release its memory and have that memory rebudgeted to serve other purposes Memory for first spawned thread’s stack Second spawned thread releases its memory Memory for third spawned thread’s stack

12 Rebudgeting memory Any thread may voluntarily release its memory and have that memory rebudgeted to serve other purposes Memory for first spawned thread’s stack And this memory is divided for the stacks of fourth and fifth threads, very deterministically and very efficiently Memory for third spawned thread’s stack

13 Cooperating HRT Components Pico Hard Real-Time Execution Engine PERC Virtual Machine

14 TraditionalJava Registry TraditionalJava TraditionalJava.publish(“deviceXYZ”, x)

15 TraditionalJava Registry “Hard Real-Time Domain” HardRealTimeDomain.lookup(“deviceXYZ”)