Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The packer filter: an efficient mechanism for user-level network code
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Calculating the maximum, execution time of real-time programs
Real-Time Systems
Handbook of theoretical computer science (vol. B)
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Specification-based test oracles for reactive systems
ICSE '92 Proceedings of the 14th international conference on Software engineering
Theoretical Computer Science
An extendible approach for analyzing fixed priority hard real-time tasks
Real-Time Systems
Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Computing Maximum Task Execution Times — A Graph-BasedApproach
Real-Time Systems
Advanced compiler design and implementation
Advanced compiler design and implementation
Data flow analysis for checking properties of concurrent Java programs
Proceedings of the 21st international conference on Software engineering
Undecidability of context-sensitive data-dependence analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Supporting Timing Analysis by Automatic Bounding of LoopIterations
Real-Time Systems - Special issue on worst-case execution-time analysis
Fast and Precise WCET Prediction by Separated Cache andPath Analyses
Real-Time Systems - Special issue on worst-case execution-time analysis
Safety checking of machine code
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Scalable propagation-based call graph construction algorithms
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Static checking of interrupt-driven software
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
Regression test selection for Java software
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
Principles of Program Analysis
Principles of Program Analysis
Real-Time Systems and Programming Languages: ADA 95, Real-Time Java, and Real-Time POSIX
Real-Time Systems and Programming Languages: ADA 95, Real-Time Java, and Real-Time POSIX
Integrating Functional and Temporal Domains in Logic Design: The False Path Problem and Its Implications
Automatic detection and exploitation of branch constraints for timing analysis
IEEE Transactions on Software Engineering
Reliable and Precise WCET Determination for a Real-Life Processor
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Processor Pipelines and Their Properties for Static WCET Analysis
EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
Model Checking as Constraint Solving
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Cache Behavior Prediction by Abstract Interpretation
SAS '96 Proceedings of the Third International Symposium on Static Analysis
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
RTCSA '99 Proceedings of the Sixth International Conference on Real-Time Computing Systems and Applications
Extending FLAVERS to Check Properties on Infinite Executions of Concurrent Software Systems
Extending FLAVERS to Check Properties on Infinite Executions of Concurrent Software Systems
Data flow analysis for verifying correctness properties of concurrent programs
Data flow analysis for verifying correctness properties of concurrent programs
Race checking by context inference
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Static checking of interrupt-driven software
Static checking of interrupt-driven software
Algorithms in c, part 5: graph algorithms, third edition
Algorithms in c, part 5: graph algorithms, third edition
Client-driven pointer analysis
SAS'03 Proceedings of the 10th international conference on Static analysis
Modeling complex flows for worst-case execution time analysis
RTSS'10 Proceedings of the 21st IEEE conference on Real-time systems symposium
Portable worst-case execution time analysis using Java byte code
Euromicro-RTS'00 Proceedings of the 12th Euromicro conference on Real-time systems
A type system equivalent to a model checker
ACM Transactions on Programming Languages and Systems (TOPLAS)
Xest: an automated framework for regression testing of embedded software
WESE '10 Proceedings of the 2010 Workshop on Embedded Systems Education
Timing analysis of interrupt-driven programs under context bounds
Proceedings of the International Conference on Formal Methods in Computer-Aided Design
Investigating time properties of interrupt-driven programs
SBMF'12 Proceedings of the 15th Brazilian conference on Formal Methods: foundations and applications
FORMATS'13 Proceedings of the 11th international conference on Formal Modeling and Analysis of Timed Systems
Hi-index | 0.00 |
Real-time, reactive, and embedded systems are increasingly used throughout society (e.g., flight control, railway signaling, vehicle management, medical devices, and many others). For real-time, interrupt-driven software, timely interrupt handling is part of correctness. It is vital for software verification in such systems to check that all specified deadlines for interrupt handling will be met. Such verification is a daunting task because of the large number of different possible interrupt arrival scenarios. For example, for a Z86-based microcontroller, there can be up to six interrupt sources and each interrupt can arrive during any clock cycle. Verification of such systems has traditionally relied upon lengthy and tedious testing; even under the best of circumstances, testing is likely to cover only a fraction of the state space in interrupt-driven systems. This paper presents the Zilog Architecture Resource Bounding Infrastructure (ZARBI), a tool for deadline analysis of interrupt-driven Z86-based software. The main idea is to use static analysis to significantly decrease the required testing effort by automatically identifying and isolating the segments of code that need the most testing. Our tool combines multiresolution static analysis and testing oracles in such a way that only the oracles need to be verified by testing. Each oracle specifies the worst-case execution time from one program point to another, which is then used by the static analysis to improve precision. For six commercial microcontroller systems, our experiments show that a moderate number of testing oracles are sufficient to do precise deadline analysis.