Published in

2012 IEEE/AIAA 31st Digital Avionics Systems Conference (DASC)

DOI: 10.1109/dasc.2012.6382940

2012 IEEE/AIAA 31st Digital Avionics Systems Conference (DASC)

DOI: 10.1109/dasc.2012.6383137

Links

Tools

Export citation

Search in Google Scholar

Visualizing concurrency faults in ARINC-653 real-time applications

This paper is available in a repository.
This paper is available in a repository.

Full text: Download

Green circle
Preprint: archiving allowed
Green circle
Postprint: archiving allowed
Red circle
Published version: archiving forbidden
Data provided by SHERPA/RoMEO

Abstract

The ARINC-653 standard architecture for flight software specifies an application executive (APEX) which provides an application programming interface and defines a hierarchical framework which provides health management for error detection and recovery. In every partition of the architecture, however, processes may have to deal with asynchronous realtime signals from peripheral devices or may communicate with other processes through blackboards or buffers. This configuration may lead programs into concurrency faults such as unintended race conditions which are common and difficult to be removed by testing. Unfortunately, existing tools for reporting concurrency faults in applications that use concurrent signal handlers can neither represent the complex interactions between an ARINC-653 application and its error handlers nor provide effective means for understanding the dynamic behavior of concurrent signal handlers involved into data races. Thus, this paper presents an intuitive tool that visualizes the partial ordering of runtime events to detect concurrency faults in an ARINC-653 application that uses concurrent signal handlers. It uses vertically parallel arrows with different colors to capture the logical concurrency between the application, its error handlers and concurrent signal handlers, and materializes synchronization operations with differently colored horizontal arrows. Our visualization tool allows at a glance, to visually detect data races and provides a great understanding of the program internal for an easy debugging process.