Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Real-Time Specification for Java
The Real-Time Specification for Java
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Automated Software Engineering
Extending Promela and Spin for Real Time
TACAs '96 Proceedings of the Second International Workshop on Tools and Algorithms for Construction and Analysis of Systems
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
CMC: a pragmatic approach to model checking real code
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Scoped Types for Real-Time Java
RTSS '04 Proceedings of the 25th IEEE International Real-Time Systems Symposium
Iterative context bounding for systematic testing of multithreaded programs
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
A Java processor architecture for embedded real-time systems
Journal of Systems Architecture: the EUROMICRO Journal
ACM Computing Surveys (CSUR)
CDx: a family of real-time Java benchmarks
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Cross-profiling for Java processors
Software—Practice & Experience
Challenge benchmarks for verification of real-time programs
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Interactive worst-case execution time analysis of hard real-time systems
Interactive worst-case execution time analysis of hard real-time systems
Worst-case execution time analysis for a Java processor
Software—Practice & Experience
The embedded Java benchmark suite JemBench
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Model checking real time java using java pathfinder
ATVA'05 Proceedings of the Third international conference on Automated Technology for Verification and Analysis
Hard real-time garbage collection for a Java chip multi-processor
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
The safety-critical java mission model: a formal account
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Fault Resilient Real-Time Design for NoC Architectures
ICCPS '12 Proceedings of the 2012 IEEE/ACM Third International Conference on Cyber-Physical Systems
Data cache organization for accurate timing analysis
Real-Time Systems
Safety-critical Java programs from Circus models
Real-Time Systems
Non-blocking inter-partition communication with wait-free pair transactions
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.00 |
With traditional testing, the test case has no control over non-deterministic scheduling decisions, and thus errors dependent on scheduling are only found by pure chance. Java Path Finder (JPF) is a specialized Java virtual machine that can systematically explore execution paths for all possible schedulings, and thus catch these errors. Unfortunately, execution-based model checkers, including JPF, cannot be easily adapted to support real-time programs. We propose a scheduling algorithm for JPF which allows testing of Safety Critical Java (SCJ) applications with periodic event handlers at SCJ levels 0 and 1 (without aperiodic event handlers). The algorithm requires that deadlines are not missed and that there is an execution time model that can give best- and worst-case execution time estimates for a given program path and specific program inputs. Our implementation, named RSJ, allows to search for scheduling dependent memory access errors, certain invalid argument errors, priority ceiling emulation protocol violations, and failed assertions in application code in SCJ programs for levels 0 and 1. It uses the execution time model of the Java Optimized Processor (JOP). We test our tool with Collision Detector and PapaBench application benchmarks. We provide an SCJ version of the C PapaBench benchmark, which implements an autopilot that has flown real UAVs.