SlideShare uma empresa Scribd logo
1 de 41
Safety Critical Java
for embedded systems
Bent Thomsen
CISS/Dept. Computing
InfinIT Embedded Systems Engineering interst group
meeting
30.3.2016
A typical safety critical embedded
hard-real-time control program
Cruise control:
Loop every X microseconds
Read the sensors;
Compute speed;
if speed too high
Compute pressure for brake pedal;
if speed too low
Compute pressure for accelerator;
Transmit the outputs to actuators;
wait for next period;
How hard can it be to program such systems?
Apparently hard enough
• Toyota's Accelerator Problem Probably Caused by
Embedded Software Bugs
• Software Bug Causes Toyota Recall of Almost Half a
Million New Hybrid Cars
• BMW recall: The company will replace defective high-
pressure fuel pump and update software in 150,000
vehicles.
• Not to mention The Arianne 5 or Airbus A330
A hard real-time problem
Embedded Control Systems
• Over 90% of all microprocessors are used for real-
time and embedded systems
– Market growing 10% year on year
• Usually programmed in C or Assembler
– Hard, error prone, work
– But preferred choice
• Close to hardware
• No real alternatives
– Difficult to find new skilled programmers
• Jackson Structured Development (1975) still widely used
• EE Times calling for re-introducing C programming at US Uni
Well … ADA – 10th on the list of most wanted skills
Model Driven Development
• Develop Model of System
• Verify desirable properties
• Generate Code from Model
• But ..
– Many find developing models harder than programming
– Often some parts have to be programmed anyhow
– Model and code have tendency to drift apart
We need to look for other languages
• The number of embedded systems is growing
• More functionality in each system is required
• More reliable systems are needed
• Time to market is getting shorter
• Increase productivity
– Software engineering practices (OOA&D) – 10%
– Tools (IDEs, analyzers and verifiers) – 10%
– New Languages -700%
• 200%-300% in embedded systems programming (Atego)
Java
• Most popular programming language ever !
– In 2005 Sun estimated 4.5 million Java
programmers
– In 2010 Oracle estimated 9 million Java
programmers
– 61% of all programmers are Java programmers
• Originally designed for setop-boxes
• But propelled to popularity by the internet
– Write once, Run everywhere
http://jaxenter.com/how-many-java-developers-are-there-10462.html
9
Advantage of Java over C/C++
• Clean syntax and (relative) clean semantics
• No preprocessor
• Wide range of tool support
• Single dispatch style OOP
• Strong, extendible type system
• Better support for separating subtyping and reuse via
interfaces and single inheritance
• No explicit pointer manipulation
• Pointer safe deallocation
• Built-in Concurrency model
• Portability via JVM (write once, run anywhere)
What is the problem with Java?
• Unpredictable performance
– Memory
• Garbage collected heap
– Control and data flow
• Dynamic class loading
• Recursion
• Unbounded loops
• Dynamic dispatch
• Exceptions
– Scheduling
– Lack high resolution time
• JVM
– Good for portability – bad for predictability
Real-Time Specification for Java (RTSJ)
• Java Community Standard (JSR 1, JSR 282)
– Started in 1998
• January 2002 – RTSJ 1.0 Accepted by JSP
• Spring 2005 – RTSJ 1.0.1 released
• Summer 2006 – RTSJ 1.0.2 initiated
• March 2009 Early draft of RTSJ version 1.1 now called JSR 282.
• March 2015 Early draft version 2
• New Thread model: NoHeapRealtimeThread
– Never interrupted by Garbage Collector
– Threads may not access Heap Objects
– Extends Java’s 10 priority levels to 28
13
RTSJ Overview
• Clear definition of scheduler
• Priority inheritance protocol
• NoHeapRealtimeThread
• BoundAsyncEventHandler
• Scoped memory to avoid GC
• Low-level access through raw memory
• High resolution time and timer
• Originally targeted at larger systems
– implementation from Sun requires a dual UltraSparc
III or higher with 512 MB memory and the Solaris 10
operating system
– Now support by commercial embedded JVMs
14
RTSJ Guiding Principles
• Backward compatibility to standard Java
• No Syntactic extension
• Reflected current real-time practice anno 1998
• Allow implementation flexibility
• Rather complex and very dynamic
• Write Once, Run Anywhere
– But execution time is platform dependent
• Does not address certification of Safety Critical applications
• Most common for real-time Java applications
– Especially on Wall Street
15
Observation
There is essentially only one way to get a more
predictable language:
• namely to select a set of features which makes
it controllable.
• Which implies that a set of features can be
deselected as well
Safety-Critical Java (SCJ)
• Java Specification Request 302
• Aims for DO-178C/ED-12C (IEC 61508/ISO 26262)
• Restricted subset of RTSJ
• Three Compliance Points (Levels 0, 1, 2)
– Level 0 provides a cyclic executive (single thread), no wait/notify
– Level 1 provides a single mission with multiple schedulable
objects,
– Level 2 provides nested missions with (limited) nested scopes
• More analysis friendly
– Especially Worst Case Execution Time Analysis
– Write once, Run where ever possible
SCJ
• Only RealtimeThreads are allowed
• Notions of missions and handlers
• No heap objects/ no GC
• Restricted use of scopes
Predicatble JVM
• JOP
– Java Optimized Processor
– JVM in Hardware (FPGA)
• HVM
– targeted at devices with 256 KB flash and 20KB of RAM
– Interpreted or AOT compilering
– 1st level interupt handlers in Java
– Runs on ATmega2560, CR16C, ARM7, ARM9 and x86
• JamaicaVM
– Industrial strength real-time JVM from Aicas
– Enroute for Certification for use in Airplanes and Cars
– JamaicaCAR has over 5 million units shipped
Java look-and-feel for low-end embedded devices
Support incremental move from C to Java 19
The HVM
Java-to-C compiler with an embedded interpreter
20
Features
- Java-to-C compiler with an embedded interpreter
- Execution on the bare metal
- Run in 256 KB ROM and 20 KB RAM
- First level interrupt handling & Hardware Objects
- Hybrid execution style (interpretation + AOT)
- Program specialization
* Classes & methods
* Interpreter
- Native variable support
- Portability
* No external dependencies
* Strict ANSI-C
* Support incremental move from C to Java
- Process switching & scoped memory
- Support for multi-core
The Predictable Real-time HVM
• Time predictable implementations of
Interpreter loop and each bytecode
Trinity of tools, platform and
programming model
What about Time Analysis?
• Traditional approaches to
analysis of RT systems are hard
and conservative
• Very difficult to use with Java
because of JVM (and Object
Orientedness)
41
Utilisation-Based Analysis
• A simple sufficient but not necessary
schedulability test exists
)12( /1
1
 
N
N
i i
i
N
T
C
U
 NU as69.0
Where C is WCET and T is period
42
Response Time Equation
j
ihpj
j
i
ii C
T
R
CR  






 )(
Where hp(i) is the set of tasks with priority higher than task i
Solve by forming a recurrence relationship:
j
ihpj
j
n
i
i
n
i C
T
w
Cw  








)(
1
The set of values is monotonically non decreasing
When the solution to the equation has been found,
must not be greater that (e.g. 0 or )
1
 n
i
n
i
ww
,..,...,,, 210 n
iiii
wwww
0
i
w
iR iC
Model based Analysis
• Translate timing analysis problems into analysis of properties
of timed Automatas
– TIMES
• Model based schedulability tool based on UPPAAL
– WCA
• WCET analysis for JOP
– SARTS
• Schedulability on JOP
– TetaJ
• WCET analysis for SW JVM on Commodity HW
– TetaSARTS
• Schedulability analysis for SW JVM on Commodity HW and JOP
– SymRT
• Combines Symbolic executioon and modelbased timing analysis
24
TetaJ
• WCET analysis tool
– taking Java portability into account
• Analysis at method level
• Can be used interactively
• Takes VM into account
• Takes HW into account
25
26
TetaSARTS
27
Minepump example
28https://www.youtube.com/watch?v=DbR42p5vU2M&feature=player_detailpage
Minepump example
Write once – run whereever possible
29
Energy Optimize Applications
SymRT
• Combining Symbolic execution and TA
Compositional Verification
• TetaSARTS generates model for whole program
• Library routines analysed again and again
• Models based on control flow can be complicated
– SymRT models are smaller due to symbolic execution
• Idea: Annotate interfaces with abstract
description of behaviour
– Time and Resource Specification Language (TRSL)
– Could have been any of a range of spec. lang.
• UML/Marte, ACSR, TADL
32
Note – could have used [ 1..8 ; using(r)[2] ; 1 ] since
[ 1 ; 7? ; using(r)[2] ; 1 ] ≤ [ 1 ..8 ; using(r)[2] ; 1 ]
Further Analysis and tools
• Scope compliance analysis for SCJ
• SCJ compliance analyzer
• Eclipse plug-in
• Lot’s of work on (analyzable) Real-time GC
Future Work
• Hierarchical schedulability (mixed mode)
– Mixed Java and C systems
• Analyse non-SCJ programs
– Java 8, Groovy, Scala
– TetaSARTS/SymRT can analyze invoke virtual bytecode used for implementing lambdas
• Loadable Safelets and cloud verification
• Verifiable tool chain
– Formalized translation from JBC to TA
– Recent formal and mechanized specification of Java
– Use of CompCert C compiler
Future Applications
36
Learn more
• From Safety Critical Java Programs to Timed Process Models.
– Thomsen, Bent; Luckow, Kasper Søe; Thomsen, Lone Leth; Bøgholm, Thomas.
– Programming Languages with Applications to Biology and Security: Essays Dedicated to Pierpaolo
Degano on the Occasion of His 65th Birthday. red. / Chiara Bodei; Gian-Luigi Ferrari ; Corrado
Priami. Springer, 2015. s. 319-338 (Lecture Notes in Computer Science; Nr. 9465).
• Safety Critical Java for Robotics Programming.
– Thomsen, Bent; Luckow, Kasper Søe; Bøgholm, Thomas; Thomsen, Lone Leth; Korsholm,
Stephan.
– Proceedings of The 3rd AAU Workshop on Robotics. Aalborg Universitetsforlag, 2015.
• Symbolic execution and timed automata model checking for timing analysis of Java real-
time systems.
– Luckow, Kasper Søe; Păsăreanu, Corina; Thomsen, Bent.
– Eurasip Journal on Embedded Systems, Vol. 2015/2, 09.2015.
37
Learn more
• HVMTP: A Time Predictable and Portable Java Virtual Machine for
Hard Real-Time Embedded Systems.
– Luckow, Kasper Søe; Thomsen, Bent; Korsholm, Stephan.
– JTRES 2014.
• TetaSARTS: A Tool for Modular Timing Analysis of Safety Critical
Java Systems
– Kasper Luckow, Thomas Bøgholm, Bent Thomsen, and Kim Larsen
– To appear JTRES 2013
• Schedulability Analysis Abstractions for Safety Critical Java
– Thomas Bøgholm, Bent Thomsen, Kim G. Larsen, Alan Mycroft
– ISORC 2012
• Model-based schedulability analysis of safety critical hard real-time
java programs
– T. Bøgholm, H. Kragh-Hansen, P. Olsen, B. Thomsen, and K. G. Larsen
– JTRES 2008
38
Try it out?
• TetaSARTS
– http://people.cs.aau.dk/~luckow/tetasarts/
• Hardware Near Virtual Machine
– http://www.icelab.dk/
• oSCJ (open Safety-Critical Java Implementation)
– http://sss.cs.purdue.edu/projects/oscj/
• Java Optimized Processor
– http://www.jopdesign.com/
• JamaicaVM
– http://www.aicas.com/jamaica.html 39
40
Joint work with:
• Allan Mycroft
– Cambridge University
• Corina S. Pasareanu
– NASA Ames, CA, USA
• Hans Søndergaard, Stephan Korsholm
– Via University College
• Thomas Bøgholm, Kasper Søe Luckow, Anders P. Ravn,
Kim G. Larsen, Rene R. Hansen and Lone Leth
Thomsen
– CISS/Department of Computer Science, Aalborg University
Thank You
41

Mais conteúdo relacionado

Mais procurados

Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Sameh El-Ashry
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 
Code Management Workshop
Code Management WorkshopCode Management Workshop
Code Management WorkshopSameh El-Ashry
 
HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...
HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...
HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...AdaCore
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocksNirav Desai
 
Interface-Implementation Contract Checking
Interface-Implementation Contract CheckingInterface-Implementation Contract Checking
Interface-Implementation Contract CheckingDharmalingam Ganesan
 
verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020Sameh El-Ashry
 
Dealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDVClub
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerSameh El-Ashry
 
Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!Lionel Briand
 
Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Chun Xia
 
12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_design12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_designUsha Mehta
 
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...Pankaj Singh
 
Automated Change Impact Analysis between SysML Models of Requirements and Design
Automated Change Impact Analysis between SysML Models of Requirements and DesignAutomated Change Impact Analysis between SysML Models of Requirements and Design
Automated Change Impact Analysis between SysML Models of Requirements and DesignLionel Briand
 
2019 3 testing and verification of vlsi design_sta
2019 3 testing and verification of vlsi design_sta2019 3 testing and verification of vlsi design_sta
2019 3 testing and verification of vlsi design_staUsha Mehta
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyPankaj Singh
 

Mais procurados (20)

system verilog
system verilogsystem verilog
system verilog
 
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
 
Scan insertion
Scan insertionScan insertion
Scan insertion
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 
Code Management Workshop
Code Management WorkshopCode Management Workshop
Code Management Workshop
 
HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...
HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...
HIS 2015: Alastair F. Donaldson - Fighting for Software Correctness in a Mass...
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
 
Interface-Implementation Contract Checking
Interface-Implementation Contract CheckingInterface-Implementation Contract Checking
Interface-Implementation Contract Checking
 
Sonar Metrics
Sonar MetricsSonar Metrics
Sonar Metrics
 
verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020
 
Dealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in Verification
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI career
 
Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!
 
Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4
 
H S
H SH S
H S
 
12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_design12 static timing_analysis_3_clocked_design
12 static timing_analysis_3_clocked_design
 
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...
 
Automated Change Impact Analysis between SysML Models of Requirements and Design
Automated Change Impact Analysis between SysML Models of Requirements and DesignAutomated Change Impact Analysis between SysML Models of Requirements and Design
Automated Change Impact Analysis between SysML Models of Requirements and Design
 
2019 3 testing and verification of vlsi design_sta
2019 3 testing and verification of vlsi design_sta2019 3 testing and verification of vlsi design_sta
2019 3 testing and verification of vlsi design_sta
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional Safety
 

Destaque (8)

Embedded Software Quality
Embedded Software QualityEmbedded Software Quality
Embedded Software Quality
 
Raspberry Pi? Men vi har jo iPads! Overvejelser omkring undervisning. RPI-ud...
Raspberry Pi? Men vi har jo iPads!  Overvejelser omkring undervisning. RPI-ud...Raspberry Pi? Men vi har jo iPads!  Overvejelser omkring undervisning. RPI-ud...
Raspberry Pi? Men vi har jo iPads! Overvejelser omkring undervisning. RPI-ud...
 
Raspberry Pi – Putting the fun back into computing
Raspberry Pi – Putting the fun back into computingRaspberry Pi – Putting the fun back into computing
Raspberry Pi – Putting the fun back into computing
 
The Casting Demonstrator. Using the Raspberry Pi for graphics and simulated f...
The Casting Demonstrator. Using the Raspberry Pi for graphics and simulated f...The Casting Demonstrator. Using the Raspberry Pi for graphics and simulated f...
The Casting Demonstrator. Using the Raspberry Pi for graphics and simulated f...
 
Konstruktion omkring en Raspberry Pi
Konstruktion omkring en Raspberry PiKonstruktion omkring en Raspberry Pi
Konstruktion omkring en Raspberry Pi
 
A history of (Nordic) compilers and autocodes
A history of (Nordic) compilers and autocodesA history of (Nordic) compilers and autocodes
A history of (Nordic) compilers and autocodes
 
Udviklingsplatform og programmeringssprog
Udviklingsplatform og programmeringssprogUdviklingsplatform og programmeringssprog
Udviklingsplatform og programmeringssprog
 
GomSpace introduktion
GomSpace introduktionGomSpace introduktion
GomSpace introduktion
 

Semelhante a Værktøjer udviklet på AAU til analyse af SCJ programmer

Towards "write once - run whenever possible" with Safety Critical Java af Ben...
Towards "write once - run whenever possible" with Safety Critical Java af Ben...Towards "write once - run whenever possible" with Safety Critical Java af Ben...
Towards "write once - run whenever possible" with Safety Critical Java af Ben...InfinIT - Innovationsnetværket for it
 
Real-time Programming in Java
Real-time Programming in JavaReal-time Programming in Java
Real-time Programming in JavaAleš Plšek
 
Update on Trinity System Procurement and Plans
Update on Trinity System Procurement and PlansUpdate on Trinity System Procurement and Plans
Update on Trinity System Procurement and Plansinside-BigData.com
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...Ryousei Takano
 
The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningjClarity
 
200923 01en
200923 01en200923 01en
200923 01enopenrtm
 
SREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsSREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsBrendan Gregg
 
Low latency high throughput streaming using Apache Apex and Apache Kudu
Low latency high throughput streaming using Apache Apex and Apache KuduLow latency high throughput streaming using Apache Apex and Apache Kudu
Low latency high throughput streaming using Apache Apex and Apache KuduDataWorks Summit
 
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Adam Dunkels
 
Performance Test Automation With Gatling
Performance Test Automation  With GatlingPerformance Test Automation  With Gatling
Performance Test Automation With GatlingKnoldus Inc.
 
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .pptReal-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .pptlematadese670
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...Edge AI and Vision Alliance
 
Lean Model-Driven Development through Model-Interpretation: the CPAL design ...
Lean Model-Driven Development through  Model-Interpretation: the CPAL design ...Lean Model-Driven Development through  Model-Interpretation: the CPAL design ...
Lean Model-Driven Development through Model-Interpretation: the CPAL design ...Nicolas Navet
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating SystemTech_MX
 
Introduction to Real Time Java
Introduction to Real Time JavaIntroduction to Real Time Java
Introduction to Real Time JavaDeniz Oguz
 

Semelhante a Værktøjer udviklet på AAU til analyse af SCJ programmer (20)

Towards "write once - run whenever possible" with Safety Critical Java af Ben...
Towards "write once - run whenever possible" with Safety Critical Java af Ben...Towards "write once - run whenever possible" with Safety Critical Java af Ben...
Towards "write once - run whenever possible" with Safety Critical Java af Ben...
 
Real-time Programming in Java
Real-time Programming in JavaReal-time Programming in Java
Real-time Programming in Java
 
Realtime
RealtimeRealtime
Realtime
 
Update on Trinity System Procurement and Plans
Update on Trinity System Procurement and PlansUpdate on Trinity System Procurement and Plans
Update on Trinity System Procurement and Plans
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...
 
The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
 
Real time Linux
Real time LinuxReal time Linux
Real time Linux
 
200923 01en
200923 01en200923 01en
200923 01en
 
SREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsSREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREs
 
Low latency high throughput streaming using Apache Apex and Apache Kudu
Low latency high throughput streaming using Apache Apex and Apache KuduLow latency high throughput streaming using Apache Apex and Apache Kudu
Low latency high throughput streaming using Apache Apex and Apache Kudu
 
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
 
Onnc intro
Onnc introOnnc intro
Onnc intro
 
Gatling
Gatling Gatling
Gatling
 
Performance Test Automation With Gatling
Performance Test Automation  With GatlingPerformance Test Automation  With Gatling
Performance Test Automation With Gatling
 
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .pptReal-Time Operating Systems Real-Time Operating Systems RTOS .ppt
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
 
c-quilibrium R forecasting integration
c-quilibrium R forecasting integrationc-quilibrium R forecasting integration
c-quilibrium R forecasting integration
 
Lean Model-Driven Development through Model-Interpretation: the CPAL design ...
Lean Model-Driven Development through  Model-Interpretation: the CPAL design ...Lean Model-Driven Development through  Model-Interpretation: the CPAL design ...
Lean Model-Driven Development through Model-Interpretation: the CPAL design ...
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
 
Introduction to Real Time Java
Introduction to Real Time JavaIntroduction to Real Time Java
Introduction to Real Time Java
 

Mais de InfinIT - Innovationsnetværket for it

Mais de InfinIT - Innovationsnetværket for it (20)

Erfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermarkErfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermark
 
Object orientering, test driven development og c
Object orientering, test driven development og cObject orientering, test driven development og c
Object orientering, test driven development og c
 
Embedded softwaredevelopment hcs
Embedded softwaredevelopment hcsEmbedded softwaredevelopment hcs
Embedded softwaredevelopment hcs
 
C og c++-jens lund jensen
C og c++-jens lund jensenC og c++-jens lund jensen
C og c++-jens lund jensen
 
201811xx foredrag c_cpp
201811xx foredrag c_cpp201811xx foredrag c_cpp
201811xx foredrag c_cpp
 
C som-programmeringssprog-bt
C som-programmeringssprog-btC som-programmeringssprog-bt
C som-programmeringssprog-bt
 
Infinit seminar 060918
Infinit seminar 060918Infinit seminar 060918
Infinit seminar 060918
 
DCR solutions
DCR solutionsDCR solutions
DCR solutions
 
Not your grandfathers BPM
Not your grandfathers BPMNot your grandfathers BPM
Not your grandfathers BPM
 
Kmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolutionKmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolution
 
EcoKnow - oplæg
EcoKnow - oplægEcoKnow - oplæg
EcoKnow - oplæg
 
Martin Wickins Chatbots i fronten
Martin Wickins Chatbots i frontenMartin Wickins Chatbots i fronten
Martin Wickins Chatbots i fronten
 
Marie Fenger ai kundeservice
Marie Fenger ai kundeserviceMarie Fenger ai kundeservice
Marie Fenger ai kundeservice
 
Mads Kaysen SupWiz
Mads Kaysen SupWizMads Kaysen SupWiz
Mads Kaysen SupWiz
 
Leif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support CenterLeif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support Center
 
Jan Neerbek NLP og Chatbots
Jan Neerbek NLP og ChatbotsJan Neerbek NLP og Chatbots
Jan Neerbek NLP og Chatbots
 
Anders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer SupportAnders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer Support
 
Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018
 
Innovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekterInnovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekter
 
Rokoko infin it presentation
Rokoko infin it presentation Rokoko infin it presentation
Rokoko infin it presentation
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Værktøjer udviklet på AAU til analyse af SCJ programmer

  • 1. Safety Critical Java for embedded systems Bent Thomsen CISS/Dept. Computing InfinIT Embedded Systems Engineering interst group meeting 30.3.2016
  • 2. A typical safety critical embedded hard-real-time control program Cruise control: Loop every X microseconds Read the sensors; Compute speed; if speed too high Compute pressure for brake pedal; if speed too low Compute pressure for accelerator; Transmit the outputs to actuators; wait for next period; How hard can it be to program such systems?
  • 3. Apparently hard enough • Toyota's Accelerator Problem Probably Caused by Embedded Software Bugs • Software Bug Causes Toyota Recall of Almost Half a Million New Hybrid Cars • BMW recall: The company will replace defective high- pressure fuel pump and update software in 150,000 vehicles. • Not to mention The Arianne 5 or Airbus A330
  • 5. Embedded Control Systems • Over 90% of all microprocessors are used for real- time and embedded systems – Market growing 10% year on year • Usually programmed in C or Assembler – Hard, error prone, work – But preferred choice • Close to hardware • No real alternatives – Difficult to find new skilled programmers • Jackson Structured Development (1975) still widely used • EE Times calling for re-introducing C programming at US Uni Well … ADA – 10th on the list of most wanted skills
  • 6. Model Driven Development • Develop Model of System • Verify desirable properties • Generate Code from Model • But .. – Many find developing models harder than programming – Often some parts have to be programmed anyhow – Model and code have tendency to drift apart
  • 7. We need to look for other languages • The number of embedded systems is growing • More functionality in each system is required • More reliable systems are needed • Time to market is getting shorter • Increase productivity – Software engineering practices (OOA&D) – 10% – Tools (IDEs, analyzers and verifiers) – 10% – New Languages -700% • 200%-300% in embedded systems programming (Atego)
  • 8. Java • Most popular programming language ever ! – In 2005 Sun estimated 4.5 million Java programmers – In 2010 Oracle estimated 9 million Java programmers – 61% of all programmers are Java programmers • Originally designed for setop-boxes • But propelled to popularity by the internet – Write once, Run everywhere http://jaxenter.com/how-many-java-developers-are-there-10462.html
  • 9. 9
  • 10. Advantage of Java over C/C++ • Clean syntax and (relative) clean semantics • No preprocessor • Wide range of tool support • Single dispatch style OOP • Strong, extendible type system • Better support for separating subtyping and reuse via interfaces and single inheritance • No explicit pointer manipulation • Pointer safe deallocation • Built-in Concurrency model • Portability via JVM (write once, run anywhere)
  • 11. What is the problem with Java? • Unpredictable performance – Memory • Garbage collected heap – Control and data flow • Dynamic class loading • Recursion • Unbounded loops • Dynamic dispatch • Exceptions – Scheduling – Lack high resolution time • JVM – Good for portability – bad for predictability
  • 12. Real-Time Specification for Java (RTSJ) • Java Community Standard (JSR 1, JSR 282) – Started in 1998 • January 2002 – RTSJ 1.0 Accepted by JSP • Spring 2005 – RTSJ 1.0.1 released • Summer 2006 – RTSJ 1.0.2 initiated • March 2009 Early draft of RTSJ version 1.1 now called JSR 282. • March 2015 Early draft version 2 • New Thread model: NoHeapRealtimeThread – Never interrupted by Garbage Collector – Threads may not access Heap Objects – Extends Java’s 10 priority levels to 28
  • 13. 13 RTSJ Overview • Clear definition of scheduler • Priority inheritance protocol • NoHeapRealtimeThread • BoundAsyncEventHandler • Scoped memory to avoid GC • Low-level access through raw memory • High resolution time and timer • Originally targeted at larger systems – implementation from Sun requires a dual UltraSparc III or higher with 512 MB memory and the Solaris 10 operating system – Now support by commercial embedded JVMs
  • 14. 14 RTSJ Guiding Principles • Backward compatibility to standard Java • No Syntactic extension • Reflected current real-time practice anno 1998 • Allow implementation flexibility • Rather complex and very dynamic • Write Once, Run Anywhere – But execution time is platform dependent • Does not address certification of Safety Critical applications • Most common for real-time Java applications – Especially on Wall Street
  • 15. 15 Observation There is essentially only one way to get a more predictable language: • namely to select a set of features which makes it controllable. • Which implies that a set of features can be deselected as well
  • 16. Safety-Critical Java (SCJ) • Java Specification Request 302 • Aims for DO-178C/ED-12C (IEC 61508/ISO 26262) • Restricted subset of RTSJ • Three Compliance Points (Levels 0, 1, 2) – Level 0 provides a cyclic executive (single thread), no wait/notify – Level 1 provides a single mission with multiple schedulable objects, – Level 2 provides nested missions with (limited) nested scopes • More analysis friendly – Especially Worst Case Execution Time Analysis – Write once, Run where ever possible
  • 17. SCJ • Only RealtimeThreads are allowed • Notions of missions and handlers • No heap objects/ no GC • Restricted use of scopes
  • 18. Predicatble JVM • JOP – Java Optimized Processor – JVM in Hardware (FPGA) • HVM – targeted at devices with 256 KB flash and 20KB of RAM – Interpreted or AOT compilering – 1st level interupt handlers in Java – Runs on ATmega2560, CR16C, ARM7, ARM9 and x86 • JamaicaVM – Industrial strength real-time JVM from Aicas – Enroute for Certification for use in Airplanes and Cars – JamaicaCAR has over 5 million units shipped
  • 19. Java look-and-feel for low-end embedded devices Support incremental move from C to Java 19 The HVM Java-to-C compiler with an embedded interpreter
  • 20. 20 Features - Java-to-C compiler with an embedded interpreter - Execution on the bare metal - Run in 256 KB ROM and 20 KB RAM - First level interrupt handling & Hardware Objects - Hybrid execution style (interpretation + AOT) - Program specialization * Classes & methods * Interpreter - Native variable support - Portability * No external dependencies * Strict ANSI-C * Support incremental move from C to Java - Process switching & scoped memory - Support for multi-core
  • 21. The Predictable Real-time HVM • Time predictable implementations of Interpreter loop and each bytecode
  • 22. Trinity of tools, platform and programming model
  • 23. What about Time Analysis? • Traditional approaches to analysis of RT systems are hard and conservative • Very difficult to use with Java because of JVM (and Object Orientedness) 41 Utilisation-Based Analysis • A simple sufficient but not necessary schedulability test exists )12( /1 1   N N i i i N T C U  NU as69.0 Where C is WCET and T is period 42 Response Time Equation j ihpj j i ii C T R CR          )( Where hp(i) is the set of tasks with priority higher than task i Solve by forming a recurrence relationship: j ihpj j n i i n i C T w Cw           )( 1 The set of values is monotonically non decreasing When the solution to the equation has been found, must not be greater that (e.g. 0 or ) 1  n i n i ww ,..,...,,, 210 n iiii wwww 0 i w iR iC
  • 24. Model based Analysis • Translate timing analysis problems into analysis of properties of timed Automatas – TIMES • Model based schedulability tool based on UPPAAL – WCA • WCET analysis for JOP – SARTS • Schedulability on JOP – TetaJ • WCET analysis for SW JVM on Commodity HW – TetaSARTS • Schedulability analysis for SW JVM on Commodity HW and JOP – SymRT • Combines Symbolic executioon and modelbased timing analysis 24
  • 25. TetaJ • WCET analysis tool – taking Java portability into account • Analysis at method level • Can be used interactively • Takes VM into account • Takes HW into account 25
  • 26. 26
  • 29. Minepump example Write once – run whereever possible 29
  • 31. SymRT • Combining Symbolic execution and TA
  • 32. Compositional Verification • TetaSARTS generates model for whole program • Library routines analysed again and again • Models based on control flow can be complicated – SymRT models are smaller due to symbolic execution • Idea: Annotate interfaces with abstract description of behaviour – Time and Resource Specification Language (TRSL) – Could have been any of a range of spec. lang. • UML/Marte, ACSR, TADL 32
  • 33. Note – could have used [ 1..8 ; using(r)[2] ; 1 ] since [ 1 ; 7? ; using(r)[2] ; 1 ] ≤ [ 1 ..8 ; using(r)[2] ; 1 ]
  • 34. Further Analysis and tools • Scope compliance analysis for SCJ • SCJ compliance analyzer • Eclipse plug-in • Lot’s of work on (analyzable) Real-time GC
  • 35. Future Work • Hierarchical schedulability (mixed mode) – Mixed Java and C systems • Analyse non-SCJ programs – Java 8, Groovy, Scala – TetaSARTS/SymRT can analyze invoke virtual bytecode used for implementing lambdas • Loadable Safelets and cloud verification • Verifiable tool chain – Formalized translation from JBC to TA – Recent formal and mechanized specification of Java – Use of CompCert C compiler
  • 37. Learn more • From Safety Critical Java Programs to Timed Process Models. – Thomsen, Bent; Luckow, Kasper Søe; Thomsen, Lone Leth; Bøgholm, Thomas. – Programming Languages with Applications to Biology and Security: Essays Dedicated to Pierpaolo Degano on the Occasion of His 65th Birthday. red. / Chiara Bodei; Gian-Luigi Ferrari ; Corrado Priami. Springer, 2015. s. 319-338 (Lecture Notes in Computer Science; Nr. 9465). • Safety Critical Java for Robotics Programming. – Thomsen, Bent; Luckow, Kasper Søe; Bøgholm, Thomas; Thomsen, Lone Leth; Korsholm, Stephan. – Proceedings of The 3rd AAU Workshop on Robotics. Aalborg Universitetsforlag, 2015. • Symbolic execution and timed automata model checking for timing analysis of Java real- time systems. – Luckow, Kasper Søe; Păsăreanu, Corina; Thomsen, Bent. – Eurasip Journal on Embedded Systems, Vol. 2015/2, 09.2015. 37
  • 38. Learn more • HVMTP: A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems. – Luckow, Kasper Søe; Thomsen, Bent; Korsholm, Stephan. – JTRES 2014. • TetaSARTS: A Tool for Modular Timing Analysis of Safety Critical Java Systems – Kasper Luckow, Thomas Bøgholm, Bent Thomsen, and Kim Larsen – To appear JTRES 2013 • Schedulability Analysis Abstractions for Safety Critical Java – Thomas Bøgholm, Bent Thomsen, Kim G. Larsen, Alan Mycroft – ISORC 2012 • Model-based schedulability analysis of safety critical hard real-time java programs – T. Bøgholm, H. Kragh-Hansen, P. Olsen, B. Thomsen, and K. G. Larsen – JTRES 2008 38
  • 39. Try it out? • TetaSARTS – http://people.cs.aau.dk/~luckow/tetasarts/ • Hardware Near Virtual Machine – http://www.icelab.dk/ • oSCJ (open Safety-Critical Java Implementation) – http://sss.cs.purdue.edu/projects/oscj/ • Java Optimized Processor – http://www.jopdesign.com/ • JamaicaVM – http://www.aicas.com/jamaica.html 39
  • 40. 40 Joint work with: • Allan Mycroft – Cambridge University • Corina S. Pasareanu – NASA Ames, CA, USA • Hans Søndergaard, Stephan Korsholm – Via University College • Thomas Bøgholm, Kasper Søe Luckow, Anders P. Ravn, Kim G. Larsen, Rene R. Hansen and Lone Leth Thomsen – CISS/Department of Computer Science, Aalborg University