An Adaptive N-Variant Software Architecture for Multi-Core Platforms: Models and Performance Analysis

This paper discusses the models and performance analysis for an adaptive software architecture, which supports multiple levels of fault detection, masking, and recovery through reconfiguration. The architecture starts with a formal requirement model defining multiple levels of functional capability and information assurance. The architecture includes a multi-layer design to implement the requirements using Nvariant techniques. It also integrates a reconfiguration mechanism that uses lower layers to monitor higher layers, and if a fault is detected, it reconfigures a system to maintain essential services. We first provide a general reliability model (based on generalized stochastic Petri nets) for such a system with cross-monitoring for reconfiguration. Next, we define a probabilistic automaton-based model for behavioral modeling of the system. This model is especially suitable for modeling security problems induced by value faults. Whereas the Petri net allows for reliability modeling and reconfiguration, the performance analysis of the system is given via probabilistic model checking. The models are experimentally evaluated and compared. With the current widespread deployment of multi-core processors, one question in software engineering is how to effectively harness the parallel computing power provided by these processors. The architecture presented here allows us to explore the parallel computing power that otherwise may be wasted, and uses it to improve the dependability and survivability of a system, which is validated by our performance analysis.

[1]  Robert Laddaga,et al.  Introduction to Self-adaptive Software: Applications , 2001, IWSAS.

[2]  Roger M. Kieckhafer,et al.  Exploiting Omissive Faults in Synchronous Approximate Agreement , 2000, IEEE Trans. Computers.

[3]  Renato J. O. Figueiredo,et al.  Towards Byzantine Fault Tolerance in Many-Core Computing Platforms , 2007, 13th Pacific Rim International Symposium on Dependable Computing (PRDC 2007).

[4]  Jack W. Davidson,et al.  Security through redundant data diversity , 2008, 2008 IEEE International Conference on Dependable Systems and Networks With FTCS and DCC (DSN).

[5]  Axel W. Krings,et al.  A Hierarchical Formal Framework for Adaptive N-variant Programs in Multi-core Systems , 2010, 2010 IEEE 30th International Conference on Distributed Computing Systems Workshops.

[6]  Philip M. Thambidurai,et al.  Interactive consistency with multiple failure modes , 1988, Proceedings [1988] Seventh Symposium on Reliable Distributed Systems.

[7]  Kishor S. Trivedi,et al.  Performance and Reliability Analysis of Computer Systems , 1996, Springer US.

[8]  Kishor S. Trivedi,et al.  Performance And Reliability Analysis Of Computer Systems (an Example-based Approach Using The Sharpe Software , 1997, IEEE Transactions on Reliability.

[9]  Robert Laddaga,et al.  Self-adaptive software : applications : Second International Workshop, IWSAS 2001, Balatonfüred, Hungary, May 17-19, 2001 : revised papers , 2003 .

[10]  Renato Figueiredo,et al.  Towards Byzantine Fault Tolerance in Many-Core Computing Platforms , 2007 .

[11]  Robert Laddaga,et al.  Self-Adaptive Software , 2001, Lecture Notes in Computer Science.

[12]  Michael R. Lyu Software Fault Tolerance , 1995 .

[13]  K. Hiraki,et al.  Heterogeneous Functional Units for High Speed Fault-Tolerant Execution Stage , 2007 .

[14]  Azaria Paz,et al.  Probabilistic automata , 2003 .

[15]  David Evans,et al.  N-Variant Systems: A Secretless Framework for Security through Diversity , 2006, USENIX Security Symposium.

[16]  Christel Baier,et al.  Probabilistic ω-automata , 2012, JACM.

[17]  Robert Rinker,et al.  Resilient multi-core systems: a hierarchical formal model for N-variant executions , 2009, CSIIRW '09.

[18]  Michael Franz,et al.  Multi-variant Program Execution: Using Multi-core Systems to Defuse Buffer-Overflow Vulnerabilities , 2008, 2008 International Conference on Complex, Intelligent and Software Intensive Systems.

[19]  Algirdas A. Avi The Methodology of N-Version Programming , 1995 .

[20]  Marta Z. Kwiatkowska,et al.  Probabilistic symbolic model checking with PRISM: a hybrid approach , 2004, International Journal on Software Tools for Technology Transfer.