DocumentCode :
1270934
Title :
Control-flow checking by software signatures
Author :
Oh, Nahmsuk ; Shirvani, Philip P. ; McCluskey, Edward J.
Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., Stanford Univ., CA, USA
Volume :
51
Issue :
1
fYear :
2002
fDate :
3/1/2002 12:00:00 AM
Firstpage :
111
Lastpage :
122
Abstract :
This paper presents a new signature monitoring technique, CFCSS (control flow checking by software signatures); CFCSS is a pure software method that checks the control flow of a program using assigned signatures. An algorithm assigns a unique signature to each node in the program graph and adds instructions for error detection. Signatures are embedded in the program during compilation time using the constant field of the instructions and compared with run-time signatures when the program is executed. Another algorithm reduces the code size and execution time overhead caused by checking instructions in CFCSS. A "branching fault injection experiment" was performed with benchmark programs. Without CFCSS, an average of 33.7 % of the injected branching faults produced undetected incorrect outputs; however, with CFCSS, only 3.1 % of branching faults produced undetected incorrect outputs. Thus it is possible to increase error detection coverage for control flow errors by an order of magnitude using CFCSS. The distinctive advantage of CFCSS over previous signature monitoring techniques is that CFCSS is a pure software method, i.e., it needs no dedicated hardware such as a watchdog processor for control flow checking. A watchdog task in multitasking environment also needs no extra hardware, but the advantage of CFCSS over a watchdog task is that CFCSS can be used even when the operating system does not support multitasking
Keywords :
program diagnostics; program testing; software reliability; assigned signatures; branching fault injection experiment; branching faults; code size reduction; compilation time; control flow checking by software signatures; error detection instructions; execution time overhead reduction; instructions checking; multitasking environment; program graph; run-time signatures; signature monitoring techniques; software method; undetected incorrect outputs; watchdog task; Central Processing Unit; Error correction; Fault detection; Hardware; Monitoring; Multitasking; Operating systems; Process control; Runtime; Satellites;
fLanguage :
English
Journal_Title :
Reliability, IEEE Transactions on
Publisher :
ieee
ISSN :
0018-9529
Type :
jour
DOI :
10.1109/24.994926
Filename :
994926
Link To Document :
بازگشت