Dynamic verification of operating system decisions
Communications of the ACM
Reliability and Integrity of Large Computer Programs
GFK-GI-GMR Fachtagung Prozessrechner 1974
Timesharing system design concepts (McGraw-Hill computer science series)
Timesharing system design concepts (McGraw-Hill computer science series)
Software safety: why, what, and how
ACM Computing Surveys (CSUR)
Verification of Concurrent Control Flow in Distributed Computer Systems
IEEE Transactions on Software Engineering
Towards a method of programming with assertions
ICSE '92 Proceedings of the 14th international conference on Software engineering
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
Assertion-oriented automated test data generation
Proceedings of the 18th international conference on Software engineering
Highly reliable upgrading of components
Proceedings of the 21st international conference on Software engineering
Design of sytems with concurrent error detection using software redundancy
ACM '86 Proceedings of 1986 ACM Fall joint computer conference
Fault-Tolerant Software for Real-Time Applications
ACM Computing Surveys (CSUR)
Scheduling Fault-Tolerant Programs on Multiple Processors to Maximize Schedule Reliability
SAFECOMP '99 Proceedings of the 18th International Conference on Computer Computer Safety, Reliability and Security
Structure of an efficient duplex memory for processing fault-tolerant programs
ISCA '78 Proceedings of the 5th annual symposium on Computer architecture
An approach to error-resistant software design
ICSE '76 Proceedings of the 2nd international conference on Software engineering
An approach to efficient, fault tolerant programming
ACM SIGPLAN Notices
ACM SIGSOFT Software Engineering Notes
A historical perspective on runtime assertion checking in software development
ACM SIGSOFT Software Engineering Notes
Failure-tolerant parallel programming and its supporting system architecture
AFIPS '76 Proceedings of the June 7-10, 1976, national computer conference and exposition
Dependable computing: concepts, limits, challenges
FTCS'95 Proceedings of the Twenty-Fifth international conference on Fault-tolerant computing
Self-checking widgets for interactive cockpits
EWDC '11 Proceedings of the 13th European Workshop on Dependable Computing
Assertion techniques for dynamic monitoring of linear list data structures
Journal of Systems and Software
Fault-tolerant interactive cockpits for critical applications: overall approach
SERENE'12 Proceedings of the 4th international conference on Software Engineering for Resilient Systems
Addressing dependability for interactive systems: application to interactive cockpits
Proceedings of the 5th ACM SIGCHI symposium on Engineering interactive computing systems
International Journal of Human-Computer Studies
Interactive cockpits as critical applications: a model-based and a fault-tolerant approach
International Journal of Critical Computer-Based Systems
Hi-index | 0.00 |
This paper discusses different techniques for constructing a piece of self-checking software for systems where ultra-reliability is required. Self-checking software can be designed to detect software errors, to locate and to stop the propagation of software errors, to assist in the recovery from errors and to verify the integrity of the system. Self-checking techniques can be implemented in the program to check the function, the control sequence and the data of a process. The functional aspects of a process can be monitored to detect infinite loops, incorrect loop terminations, illegal branches and wrong branches. The validity of data of a process can be assured by performing checks on the integrity of data values, the integrity of data structures and the nature of data values. These self-checking capabilities should be implemented during the initial stage of program development. The cost-effectiveness of each technique in the particular operating environment should be evaluated. Only the most cost-effective techniques should be retained and overhead can be reduced considerably by implementing these techniques in hardware.