Reports

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.

Subjects

Files

More About This Work

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