Software-implemented fault injection in operating system kernel mutex data structure

Embedded and Computer-based systems are subject to transient errors originated from several sources, including the impact of high energy particles on sensitive areas of integrated circuits. The evaluation of the sensitivity of the applications to transient faults is a major issue. The paper presents a new approach for testing the effects of transient faults on the Operating System kernel, specifically focusing on kernel mutex data structure, a key component of the kernel. A Software-implemented Fault Injection tool able to inject faults guaranteeing the non-intrusiveness and repeatability of the fault injection campaign is proposed. An analysis of the results has been performed on a large set of mutexes, in order to evaluate their criticality, in particular during input/output operations. Experimental results, executed on a set of benchmarks programs, show the relevance of the effects of the transient faults on this set of variables. Moreover, a significant percentage of faults can lead to a damage of the system also producing an application failure.

[1]  Alfredo Benso,et al.  EXFI: a low-cost fault injection system for embedded microprocessor-based boards , 1998, TODE.

[2]  Peter J. Denning,et al.  Fault Tolerant Operating Systems , 1976, CSUR.

[3]  Ravishankar K. Iyer,et al.  Experimental analysis of computer system dependability , 1996 .

[4]  Johan Karlsson,et al.  Using heavy-ion radiation to validate fault-handling mechanisms , 1994, IEEE Micro.

[5]  Jerry Cooperstein Writing Linux Device Drivers: a guide with exercises - Volume 3 , 2009 .

[6]  Michael Nicolaidis Time redundancy based soft-error tolerance to rescue nanometer technologies , 1999, Proceedings 17th IEEE VLSI Test Symposium (Cat. No.PR00146).

[7]  Ravishankar K. Iyer,et al.  Faults, symptoms, and software fault tolerance in the Tandem GUARDIAN90 operating system , 1993, FTCS-23 The Twenty-Third International Symposium on Fault-Tolerant Computing.

[8]  Jean Arlat,et al.  Fault Injection for Dependability Validation: A Methodology and Some Applications , 1990, IEEE Trans. Software Eng..

[9]  Johan Karlsson,et al.  Fault injection into VHDL models: the MEFISTO tool , 1994 .

[10]  Alfredo Benso,et al.  Fault Injection Techniques and Tools for Embedded Systems , 2003 .

[11]  Greg Kroah-Hartman,et al.  Linux Device Drivers , 1998 .

[12]  Daniel P. Siewiorek,et al.  Automated robustness testing of off-the-shelf software components , 1998, Digest of Papers. Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing (Cat. No.98CB36224).

[13]  Henrique Madeira,et al.  Xception: Software Fault Injection and Monitoring in Processor Functional Units1 , 1995 .

[14]  Barry W. Johnson,et al.  A Fault Injection Technique for VHDL Behavioral-Level Models , 1996, IEEE Des. Test Comput..

[15]  Barton P. Miller,et al.  An empirical study of the reliability of UNIX utilities , 1990, Commun. ACM.

[16]  Herbert Bos,et al.  Can we make operating systems reliable and secure? , 2006, Computer.

[17]  Jacob A. Abraham,et al.  FERRARI: A Flexible Software-Based Fault and Error Injection System , 1995, IEEE Trans. Computers.

[18]  Henrik Eriksson,et al.  MODIFI: A MODel-Implemented Fault Injection Tool , 2010, SAFECOMP.