Virtual Fault Tolerance

Brian Randell had many early ideas on the way that virtual systems could make programming more fault tolerant and allow computing systems to be more dependable. He developed these ideas with an architecture for acceptance testing and backup to previous safe points on failure of a test. The architecture provided for multiple versions of methods to pass a test, and it extended to multithreaded programs and atomic transactions. We will review the principles of these systems and then comment on how they apply in today's systems. We suggest that capability architecture, an important offshoot of virtual systems, could usefully be combined with Randell's architecture. The combination could offer a means to reduce the modern anxiety over Trojan Horse attacks against hardware and software.

[1]  Peter J. Denning,et al.  Protection: principles and practice , 1972, AFIPS '72 (Spring).

[2]  Maurice V. Wilkes,et al.  The Cambridge CAP computer and its operating system (Operating and programming systems series) , 1979 .

[3]  Henry M. Levy,et al.  Capability-Based Computer Systems , 1984 .

[4]  Ken Thompson,et al.  Reflections on trusting trust , 1984, CACM.

[5]  Farinaz Koushanfar,et al.  A Survey of Hardware Trojan Taxonomy and Detection , 2010, IEEE Design & Test of Computers.

[6]  Brian Randell,et al.  Facing up to Faults , 2000 .

[7]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[8]  Brian Randell Fault tolerance in decentralized systems , 1999, Proceedings. Fourth International Symposium on Autonomous Decentralized Systems. - Integration of Heterogeneous Systems -.

[9]  Brian Randell,et al.  Turing Memorial Lecture Facing Up to Faults , 2000, Comput. J..

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

[11]  Peter J. Denning Virtual Memory , 1996, ACM Comput. Surv..

[12]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[13]  Brian Randell,et al.  Dynamic storage allocation systems , 1968, CACM.

[14]  Jack B. Dennis,et al.  Segmentation and the Design of Multiprogrammed Computer Systems , 1965, JACM.

[15]  Brian Randell System structure for software fault tolerance , 1975 .

[16]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[17]  Brian Randell,et al.  Demand paging in perspective , 1968, AFIPS '68 (Fall, part II).