CSCI1600: Embedded and Real Time Software

Slides:



Advertisements
Similar presentations
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Advertisements

Model for Supporting High Integrity and Fault Tolerance Brian Dobbing, Aonix Europe Ltd Chief Technical Consultant.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
IBM Software Group © 2005 IBM Corporation Compilation Technology Toward Deterministic Java Performance Mark Stoodley, Mike Fulton Toronto Lab, IBM Canada.
© Andy Wellings, 2004 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
Chapter 13 Embedded Systems
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
Embedded Java Research Geoffrey Beers Peter Jantz December 18, 2001.
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.
Compilation Technology © 2007 IBM Corporation CGO Performance Overheads In Real-Time Java Programs Mark Stoodley and Mike Fulton Compilation.
Real-Time Java on JOP Martin Schöberl. Real-Time Java on JOP2 Overview RTSJ – why not Simple RT profile Scheduler implementation User defined scheduling.
Java Virtual Machine Case Study on the Design of JikesRVM.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Concurrent and.
Enhancements to Java for Real Time Systems Theresa Dsena CSE Fall 2006 Prof. Ganesan.
XOberon Operating System CLAUDIA MARIN CS 550 Fall 2005.
1 G53SRP: Introduction to Real Time Specification for Java (RTSJ) Chris Greenhalgh School of Computer Science Including material © Andy Wellings from his.
EEL The Real-Time Specification for Java (1)
CSCI1600: Embedded and Real Time Software Lecture 18: Real Time Languages Steven Reiss, Fall 2015.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
CSCI1600: Embedded and Real Time Software Lecture 17: Concurrent Programming Steven Reiss, Fall 2015.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
Java Thread Programming
The Java Platform Micro Edition Java ME
Object Oriented Programming in
COMPSCI 110 Operating Systems
Context-related issues in real-time systems
REAL-TIME OPERATING SYSTEMS
Advanced Operating Systems CIS 720
Microprocessor Systems Design I
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Introduction to the CVM and the Timesys RI
CS 6560: Operating Systems Design
Advanced OS Concepts (For OCR)
Processes and Threads Processes and their scheduling
Chapter 2: System Structures
MOBILE DEVICE OPERATING SYSTEM
Intro to Processes CSSE 332 Operating Systems
Lecture 1 Runtime environments.
Introduction Enosis Learning.
Modularity and Memory Clearly, programs must have access to memory
Real-time Software Design
Why microcontrollers in embedded systems?
Operating Systems and Systems Programming
Chapter 3: Windows7 Part 2.
Introduction Enosis Learning.
GEOMATIKA UNIVERSITY COLLEGE CHAPTER 2 OPERATING SYSTEM PRINCIPLES
CSCI1600: Embedded and Real Time Software
Chapter 3: Windows7 Part 2.
Mid Term review CSC345.
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
PalmOS.
Lecture Topics: 11/1 General Operating System Concepts Processes
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
Real Time Java : Synchronization
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
Java History, Editions, Version Features
Lecture 1 Runtime environments.
Foundations and Definitions
CSCI1600: Embedded and Real Time Software
CSE 153 Design of Operating Systems Winter 2019
CS703 – Advanced Operating Systems
Lecture Topics: 11/1 Hand back midterms
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

CSCI1600: Embedded and Real Time Software Lecture 20: Real Time Programming Steven Reiss, Fall 2016 This was a little short. Might want to increase student involvement a bit?

Embedded Programming Issues Small footprint Efficient use of memory Efficient use of hardware Access to hardware Inputs and outputs Interrupts Secure and reliable code Low power consumption Lecture 20: Real Time Programming 2/4/2019

Real Time Programming Issues Predictable performance Predictable scheduling Synchronization mechanisms Interrupts with performance guarantees Reliable, secure code Lecture 20: Real Time Programming 2/4/2019

Programming Language Wars Lecture 20: Real Time Programming 2/4/2019

Programming Languages For real-time and embedded programming Choices Assembler C/C++ (low-level language) Java/C# (high-level language) Data flow languages (FPGA) Python, Ruby, JavaScript Other How should we choose? Lecture 20: Real Time Programming 2/4/2019

Criteria for Choosing Small footprint for embedded systems Ability to write small code Ability to make efficient use of memory High performance Predictable performance Real time features Interrupts Scheduling tasks or threads Synchronization Matching the CPU model Lecture 20: Real Time Programming 2/4/2019

Criteria For Choosing Access to devices, physical memory Low Power consumption Security and Reliability Other factors Fault tolerance Code understandability Lecture 20: Real Time Programming 2/4/2019

C versus C++ versus Assembler Footprint Performance Real time features Interrupts, synchronization, scheduling control Fault tolerance Reliability Security Understandability Lecture 20: Real Time Programming 2/4/2019

Why Not Java What are the pros and cons? Lecture 20: Real Time Programming 2/4/2019

What about Java Not what Java was designed for Potential problems Java has the reputation of being slow & unpredictable Java programs are large Garbage collection and run time checks seem a bad idea Interpreted languages are too slow Lecture 20: Real Time Programming 2/4/2019

Reasons to Use Java Don’t want to give up a language we are used to Java programs are more reliable Many errors caught at source/run time level More secure Safety is critical Easier to verify Exceptions, threads, synchronization built in Data structures that are thread safe Lecture 20: Real Time Programming 2/4/2019

Using Java J2ME is the primary effort (pJava was predecessor) Addresses embedding issues JSR001 is a Java extension proposal Addresses real-time issues Understanding these helps understanding Embedded and real time programming in general Lecture 20: Real Time Programming 2/4/2019

Embedded Java Basic Problems How can these problems be addressed? VM, JIT compiler, libraries are big (64M, 256M) Scheduling abstraction used for threads is not fixed priority Java emphasizes device independence No access to physical memory (IO) How can these problems be addressed? Lecture 20: Real Time Programming 2/4/2019

Java ME Attempts to address size & independence issues Organized in terms of configurations Configuration = broad range of similar devices Determines what libraries to include Determines JVM features to include Scalable OS Select the features needed for the application No verification, finalization, class loader, thread groups, reflection Limited I/O, error handling Limited data types (no 64 bit, no multidimensional arrays) Current base configuration: 128K ram, 1M ROM Lecture 20: Real Time Programming 2/4/2019

J2ME Configurations Connected Devise Configuration Limited set of library classes 32 bit, 4MB memory required Most code sits in ROM Connected Limited Device Configuration Even more limited 16 bit processors 512K memory required Lecture 20: Real Time Programming 2/4/2019

J2ME Profiles Support sets of similar devices Other Embedded Javas Mobile Information Device Profile Touch screen or keypad, 96x54 or larger display Wireless networking Runs with 32k ram, 8k eeprom, 128k flash Used in PDAs, mobile phones, pagers Optional packages Mobile Media API support multimedia applications Other Embedded Javas Java Card – applet on a smart card Java TV – for set top boxes Lecture 20: Real Time Programming 2/4/2019

Java Real Time Embedding is easy Just pare down the language and libraries Real time requirements are more difficult Affect the execution model of the language Nothing in Java spec makes wall-clock guarantees Garbage collection pauses do not affect the semantics Thread priorities exist but aren’t well defined Lecture 20: Real Time Programming 2/4/2019

Compiled Approach Fiji VM Precompile Java to C OS includes the garbage collector Overhead about 30% over straight C code Max time of about 10% long But this is experimental, not a guarantee Lecture 20: Real Time Programming 2/4/2019

JSR1: Real Time Java Specification Thread scheduling and dispatch (tasks) Memory management Synchronization and resource sharing Asynchronous event handling Asynchronous transfer of control Asynchronous thread termination Physical memory access JSR282: Update (fix problems) JSR302: safety-critical extensions Lecture 20: Real Time Programming 2/4/2019

Thread Scheduling Basic real-time scheduler is included Priority based and preemptive At least 28 priority level Can define your own schedulers Schedulable Objects RealtimeThread :: uses real time scheduler NoHeapRealtimeThread :: may not allocate or reference normal heap Can run in preference to GC GC can be preempted Lecture 20: Real Time Programming 2/4/2019

Memory Management Garbage collection is a problem Not that it exists, but that it makes response time unpredictable Why not just interrupt the garbage collector Needs to lock all of memory? Actually needs to lock all of garbage collected memory Hence create memory areas that are separate Lecture 20: Real Time Programming 2/4/2019

Memory Management Memory Areas Scoped Memory Physical memory Regions of memory outside of traditional Java heap Don’t have to e garbage collected Scoped Memory For objects that have a lifetime defined by the scope Physical memory Specific regions for specific purposes Immortal memory Never collected Budgeted allocation Limit allocation for a schedulable objet Can be preallocated Lecture 20: Real Time Programming 2/4/2019

Synchronization Problems Wait Queues as a primitive class Synchronized data structures Interactions with scheduling Blocking times as part of max response time Wait Queues as a primitive class Dealing with priority problems Priority inheritance supported Priority ceiling emulation supported Wait-free classes for non-blocking shared access Fixed upper bound on entering an unlocked synchronized block Lecture 20: Real Time Programming 2/4/2019

Asynchronous Event Handling Bind handlers to internal and external events External events Signals, timers, interrupts (classes to support these) Lecture 20: Real Time Programming 2/4/2019

Asynchronous Transfer of Control Can you interrupt or stop a thread in Java? What do Thread.interrupt() and Thread.stop() do? Schedulable objects Can declare throws AsynchronouslyInterruptedException These can be safely interrupted When interrupted, interruptAction() is invoked Can stop a thread through implicit exceptions Lecture 20: Real Time Programming 2/4/2019

Real Time Java Implementations Fuji Compiled Java Timesys reference implementation IBM’s WebSphere Real Time Oracle Java SE Real-Time system PTC Perc JamaicaVM from aicas Lecture 20: Real Time Programming 2/4/2019

Homework Project Design Presentations Present you project to the class Plans, progress to date Project model Tasks and model(s) for each task Hand this in Can be part of presentation Lecture 20: Real Time Programming 2/4/2019