extending ada to support multi-core based monitoring and fault tolerance
Monitoring-Oriented Programming (MOP) and Software Fault Tolerance(SFT) are two important approaches to guarantee the reliablity of software systems, especially for those running online for long term. However, the introduction of monitoring or fault tolerance module will bring in high overhead. With the prevalence of multi-core platform, we can find the trade off between the reliablity and the efficiency. As one of the most reliable programming languages, Ada is used to a significant degree in many fields. Providing the support of MOP and SFT in Ada can help the programmers enhance the reliablity of software systems. In this paper, we present an approach to extending Ada to support multi-core based monitoring and fault tolerance. First we introduce the framework of multi-core based MOP and SFT. Based on this framework, programmers can design the components of MOP and SFT with tasks parallel to main tasks in Ada programming. All these tasks can be allocated to different physical cores to run concurrently. Then, we give a proposal for enabling multi-core based MOP and SFT in Ada. In this proposal, we design two packages System.MOP_Elements and System.SFT_Elements for programmers to indicate various monitoring and fault tolerance components. With the packages,programmers can also assign computation resources for each component. Finally we animate this proposal via a prototype tool called MCAda and use two case studies to show our approach.
multi-core monitoring-oriented programming software fault tolerance