Handling timing constraints violations in soft real-time applications as exceptions

In this paper, an exception-based programming paradigm is envisioned to deal with timing constraints violations occurring in soft real-time and multimedia applications written in the C language. In order to prove viability of the approach, a mechanism allowing to use such paradigm has been designed and implemented as an open-source library of C macros making use of the standard POSIX API (a few Linux-specific optimizations are also briefly discussed). The proposed approach has been validated by modifying mplayer, one of the most widely used multimedia player for Linux, so as to use the introduced library. An extensive experimental evaluation has been made, both when running the player alone and when mixing it with a workload of other synthetic real-time applications. In the latter case, different scheduling policies have been used, including both standard priority-based ones as available on the mainline Linux, and an experimental deadline-based one available as a separate patch. The shown results demonstrate how the exception-based paradigm is effective in improving the audio/video delay exhibited by the player achieving a superior performance and a dramatically better quality of experience as compared to the original heuristic frame-dropping mechanism of the player.

[1]  Gary M. Koob,et al.  Foundations of Dependable Computing , 1994 .

[2]  Claudio Scordino,et al.  An EDF scheduling class for the Linux kernel ∗ , 2009 .

[3]  Tommaso Cucinotta,et al.  An efficient implementation of the BandWidth Inheritance protocol for handling hard and soft real-time applications in the Linux kernel , 2008 .

[4]  Riccardo Bettati,et al.  Use of Imprecise Computation to Enhance Dependability of Real-Time Systems , 1994 .

[5]  Luca Abeni,et al.  Effects of P2P Streaming on Video Quality , 2010, 2010 IEEE International Conference on Communications.

[6]  Wu-chun Feng,et al.  Operating System Support for Imprecise Computation , 1996 .

[7]  Cindy Zheng,et al.  PA-RISC to IA-64: Transparent Execution, No Recompilation , 2000, Computer.

[8]  Tommaso Cucinotta,et al.  AQuoSA—adaptive quality of service architecture , 2009 .

[9]  Alan Burns,et al.  Concurrent and Real-Time Programming in Ada 2005: Preface , 2007 .

[10]  Giorgio C. Buttazzo,et al.  Integrating multimedia applications in hard real-time systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[11]  Tommaso Cucinotta,et al.  An exception based approach to timing constraints violations in real-time and multimedia applications , 2010, International Symposium on Industrial Embedded System (SIES).

[12]  Eero P. Simoncelli,et al.  Image quality assessment: from error visibility to structural similarity , 2004, IEEE Transactions on Image Processing.

[13]  Antonio Bicchi,et al.  Designing real-time embedded controllers using the anytime computing paradigm , 2009, 2009 IEEE Conference on Emerging Technologies & Factory Automation.

[14]  Andy J. Wellings Concurrent and real-time programming in Java , 2004 .

[15]  Harald Winroth Exception Handling in ANSI C , 1993 .

[16]  Insup Lee,et al.  RTC: Language support for real-time concurrency , 2005, Real-Time Systems.

[17]  Corporate Ieee,et al.  Information Technology-Portable Operating System Interface , 1990 .

[18]  Stephen A. Edwards,et al.  The Case for the Precision Timed (PRET) Machine , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[19]  Insup Lee,et al.  Language Constructs for Distributed Real-Time Programming , 1985, RTSS.

[20]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[21]  Cucinotta Tommaso,et al.  Hierarchical Multiprocessor CPU Reservations for the Linux Kernel , 2009 .

[22]  Cucinotta Tommaso,et al.  Exception-Based Management of Timing Constraints Violations for Soft Real-Time Applications , 2009 .

[23]  Stephen A. Edwards,et al.  Predictable programming on a precision timed architecture , 2008, CASES '08.