Java for embedded systems Felix G. Hamza-Lup. Outline Embedded systems characteristicsEmbedded systems characteristics Application domains Java characteristics.

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Introduction CSCI 444/544 Operating Systems Fall 2008.
J2ME 25 July Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 10 Java for MIDs Rob Pooley
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.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Chapter 13 Embedded Systems
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Figure 1.1 Interaction between applications and the operating system.
For more Lectures and Notes Visit
CS884 (Prasad)Java Goals1 “Perfect Quote” You know you've achieved perfection in design, Not when you have nothing more to add, But when you have nothing.
SM3121 Software Technology Mark Green School of Creative Media.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
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.
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.
Embedded Java Research Geoffrey Beers Peter Jantz December 18, 2001.
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.
Topics on KVM Presented By Xiaozhou David Zhu. Topics covered Introduction Java2 Platform Micro Edition CLDC KVM.
Android Introduction Platform Overview.
Part 1.  Intel x86/Pentium family  32-bit CISC processor  SUN SPARC and UltraSPARC  32- and 64-bit RISC processors  Java  C  C++  Java  Why Java?
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 11 J2ME and MIDlets Rob Pooley
Presentation 11: SOAP on small devices. Ingeniørhøjskolen i Århus Slide 2 af 11 Outline Which small devices? What are the limitations and what kind of.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Programming Languages Machine.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Computer Science Wi-Fi App using J2ME and MVC Architecture Advisor : Dr. Chung-E Wang Department of Computer Science Sacramento State University Date:
COMP25212: Virtualization Learning Objectives: a)To describe aims of virtualization - in the context of similar aims in other software components b)To.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
J2ME Presented by May Sayed & Menna Hawash. Outline Introduction “Java Technology” Introduction “What is J2ME?” J2ME Architecture J2ME Core Concepts 
Lecture 10 : Introduction to Java Virtual Machine
Java 2 Micro Edition (J2ME) and the world of java
Technical Seminar Introduction to networking with Linux Administration Amit Kumar Sahoo EC ADVANCED EMBEDDED MICROPROCESSORS AND APPLICATIONS.
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.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Challenges and Solutions for Embedded Java Michael Wortley Computer Integrated Surgery March 1, 2001.
CSCI1600: Embedded and Real Time Software Lecture 18: Real Time Languages Steven Reiss, Fall 2015.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
INSE lecture 18 – Embedded systems  what they are  hardware for embedded systems  kernels for embedded systems  building embedded systems  testing.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 6A Operating System Basics PART I.
Mobile Programming Mobile Programming - Ordibehesht Ordibehesht 1390.
By SPEC INFOTECH. A programming language reigning the IT industry Marking its presence around the globe Striking Features which make Java supreme: Simplistic.
Introduction to JAVA Programming
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Object Oriented Programming in
Before You Begin Nahla Abuel-ola /WIT.
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
Programming of Handheld and Mobile Devices
Chapter 1 Introduction to Computers, Programs, and Java
Introduction to Operating System
MOBILE DEVICE OPERATING SYSTEM
Wireless Instant Messaging Using J2ME
Java programming lecture one
Introduction Enosis Learning.
CMPE419 Mobile Application Development
Introduction Enosis Learning.
Java History, Editions, Version Features
M S COLLEGE ART’S, COMM., SCI. & BMS
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:

Java for embedded systems Felix G. Hamza-Lup

Outline Embedded systems characteristicsEmbedded systems characteristics Application domains Java characteristics Java in embedded systems Future trends References

Embedded systems Real-Time systems –Timing constrains play a critical role in their design and implementation. Have dedicated functionality i.e. designed strictly for a specific set of tasks Incorporate relatively low-speed microprocessors and may have a limited amount of memory.

Embedded systems - Inputs Random Short-lived external signals Processor must interrupt whatever else it is doing to capture the data, or it will be lost => => embedded programs are organized as a set of individual, but cooperating threads of execution.

Hardware for embedded applications Most embedded systems are housed within a highly-constrained box. –lack of space –excessive vibration => => embedded applications will be structured as a small section of initialization code that starts the programs from a ROM disk

Outline Embedded systems characteristics Application domainsApplication domains Java characteristics Java in embedded systems Future trends References

Embedded systems – applic. domains Machine and process control Medical instruments Data acquisition Network components: routers and switches

Less constraints Telephony: mobile phones, pagers PDAs

Outline Embedded systems characteristics Application domains Java characteristicsJava characteristics Java in embedded systems Future trends References

Characteristics Portability – platform independence Software reuse – OO Simplicity – easy to learn Safety and security -Java TM Authentication and Authorization Service (JAAS) -Java TM Cryptography Extension (JCE) -Secure Socket Extension (JSSE)

Some key characteristics The key characteristics of Java that make it attractive as a specification language for embedded systems are: –Built in multithreading and synchronization –Lack of pointer arithmetic –Automatic memory management

Outline Embedded systems characteristics Application domains Java characteristics Java in embedded systemsJava in embedded systems Future trends References

Technical challenges for embedded environment

Problems with “Desktop” Java Too big: JVM + JIT (just-in-time) compiler+libraries  16 MB Too slow: 5 x slower than C code No notion of address: most often hardware is accessed referring to a specific address Security, portability, dynamic behavior – not needed in embedded systems

Problems with “Desktop” Java Java Garbage Collector - collect unused memory JCG – dangerous in embedded systems “stop-the- world effect” Memory allocation is not fast enough and not predictable

Java embedded: alternatives … Special purpose JVM and core libraries JVM with JIT compiler Compiled JAVA (instead of interpreted)

Special purpose JVM and Frameworks Sun’s PersonalJava Sun's EmbeddedJava JIT – compiler J2MicroEdition JADE’s LEAP

PersonalJava Re-implements the full set of Java APIs defined by the Java application environment Fits into smaller devices with more limited memory configurations

EmbeddedJava - Goals Standardize software development for embedded devices Integrate a compact EmbeddedJava application environment directly into new devices Small adjustable memory footprint <= Configurable APIs based on application.

EmbeddedJava - Sun's advanced tools streamline JavaFilter - builds a list of the specific fields and methods used by the Java platform to run the Java application JavaCodeCompact - optimizes the code by removing unused parts of the platform. JavaDataCompact – for linking in auxiliary data files such as HTML, image, and sound files.

Sun's EmbeddedJava Technology

EmbeddedJava Application Environment

JIT compiler

JIT vs. interpreted Slow

JVM/JIT compiler & Products Dynamic compilation technique using a JIT compiler but tradeoff between: performance memory consumption startup time KAFFE JIT- one order of magnitude better execution time than Sun's JDK VMKAFFE JIT- one order of magnitude better execution time than Sun's JDK VM SuperCede VM - performs 58% and 91% faster then JDKSuperCede VM - performs 58% and 91% faster then JDK Guava by Softway -better than Sun's JDK VMGuava by Softway -better than Sun's JDK VM Microsoft's JVM/JIT- in Internet Explorer ; PC Magazine, “is the fastest JVM/JIT for the PC market.”Microsoft's JVM/JIT- in Internet Explorer ; PC Magazine, “is the fastest JVM/JIT for the PC market.” KVM – Kilo Virtual MachineKVM – Kilo Virtual Machine – small code size kernel

Compiled JAVA Java  native machine language Seems to be the current trend “Bye, bye” –portability –load new classes on-the-fly Best real-time behavior

J2MicroEdition A subset of the Java Standard Edition Notion of configuration

J2MicroEdition CDLC config. – kB of memory –16-32 bit processor –network connectivity J2ME Wireless Toolkit –debugging capabilities –emulators

JADE Java Agent DEvelopment Framework Software framework fully implemented in Java language A middle-ware that simplifies the implementation of multi-agent systems Complies with the FIPA specifications

JADE’s LEAP on embedded systems Lightweight Extensible Agent Platform LEAP is an extension of JADE to enable it to run on wireless devices and PDA's such as cell phones and Palms 02/05/02 - LEAP 2.1 has been released

LEAP Architecture

LEAP agent communication

Target devices for LEAP

Outline Embedded systems characteristics Application domains Java characteristics Java in embedded systems Future trendsFuture trends References

Trends Some constraints are relaxed: more memory, cheaper CPUs … Real-time functionality - delivered by OS not by JVM Tendency to link Java code with OS proprietary code Real-time threads parallel to JAVA threads New distributed services

Trends - Real-time threads

References (1) “What are the advantages of Java in embedded systems?” F.Mueller, ECE 2002 “Using Java in Embedded Systems” V.Ivanovic, M. Mahar, Circuit Cellar, “Java on embedded systems” M.Gafen, NSI.com. “Personal Java – Application Environment Specification v.1.1.2” Embedded systems conferences:

References (2) “LEAP: a FIPA platform for mobile and handheld devices” Frederico B., Agostino P. “Introduction to Java 2 Micro Edition”, Jeff Brown, OCI (Object Computing Inc) JADE: LEAP: FIPA: