RB: Programmer Specification of Redundancy

Smith, Jonathan M.; Maguire, Gerald Q.

RB is a programming language for specifying redundancy in various dimensions. Avizienis's notation T I HIS, for Time I Hardware I Software, describes the different types of redundancy possible in a computation: repetition (nT I HIS), redundant hardware (T I nH I S), and program (software) (T I H InS). These can each be controlled by the programmer with RB. RB derives its name from its use of the recovery block notion to specify fault-tolerant segments of software. RB also supplies the programmer with the ability to specify degrees of replication and repetition for a given recovery block alternate; the underlying support software can then take this advice to replicate in time or hardware, based on available resources. An implementation of RB based on the C programming language is described in this paper. This implementation uses a combination of a language preprocessor for C and a runtime library to provide the desired semantics. Modification of RB to support other programming languages, or programmer specification of N-Version Programming as the decision mechanism. is straightforward.



More About This Work

Academic Units
Computer Science
Department of Computer Science, Columbia University
Columbia University Computer Science Technical Reports, CUCS-269-87
Published Here
November 28, 2011