4 research outputs found

    Aspect-oriented technology for dependable operating systems

    Get PDF
    Modern computer devices exhibit transient hardware faults that disturb the electrical behavior but do not cause permanent physical damage to the devices. Transient faults are caused by a multitude of sources, such as fluctuation of the supply voltage, electromagnetic interference, and radiation from the natural environment. Therefore, dependable computer systems must incorporate methods of fault tolerance to cope with transient faults. Software-implemented fault tolerance represents a promising approach that does not need expensive hardware redundancy for reducing the probability of failure to an acceptable level. This thesis focuses on software-implemented fault tolerance for operating systems because they are the most critical pieces of software in a computer system: All computer programs depend on the integrity of the operating system. However, the C/C++ source code of common operating systems tends to be already exceedingly complex, so that a manual extension by fault tolerance is no viable solution. Thus, this thesis proposes a generic solution based on Aspect-Oriented Programming (AOP). To evaluate AOP as a means to improve the dependability of operating systems, this thesis presents the design and implementation of a library of aspect-oriented fault-tolerance mechanisms. These mechanisms constitute separate program modules that can be integrated automatically into common off-the-shelf operating systems using a compiler for the AOP language. Thus, the aspect-oriented approach facilitates improving the dependability of large-scale software systems without affecting the maintainability of the source code. The library allows choosing between several error-detection and error-correction schemes, and provides wait-free synchronization for handling asynchronous and multi-threaded operating-system code. This thesis evaluates the aspect-oriented approach to fault tolerance on the basis of two off-the-shelf operating systems. Furthermore, the evaluation also considers one user-level program for protection, as the library of fault-tolerance mechanisms is highly generic and transparent and, thus, not limited to operating systems. Exhaustive fault-injection experiments show an excellent trade-off between runtime overhead and fault tolerance, which can be adjusted and optimized by fine-grained selective placement of the fault-tolerance mechanisms. Finally, this thesis provides evidence for the effectiveness of the approach in detecting and correcting radiation-induced hardware faults: High-energy particle radiation experiments confirm improvements in fault tolerance by almost 80 percent

    Continuous evaluation framework for software architectures: an IoT case

    Get PDF
    Context: Design-time evaluation is essential to build the initial software architecture to be deployed. However, experts’ design-time assumptions are unlikely to remain true indefinitely in systems characterized by scale, heterogeneity, and dynamism (e.g. IoT). Experts’ design-time decisions can be thus challenged at run-time. A continuous architecture evaluation that systematically intertwines design-time and run-time evaluation is necessary. However, the literature lacks examples on how continuous evaluation can be realized and conducted. Objective: This thesis proposes the first continuous architecture evaluation framework. Method: The framework is composed of two phases: design-time and run-time evaluation. The design-time evaluation enables the necessary initial step of system design and deployment. Run-time evaluation assesses to what extent the architecture options adopted at design-time and other potential options, perform well at run-time. For that, the framework leverages techniques inspired by finance, reinforcement learning, multi-objective optimisation, and time series forecasting. The framework can actively track and proactively forecast the performance of architecture decisions and detect any detrimental changes. It can then inform deployment, refinement, and/or phasing-out decisions. We use an IoT case study to show how continuous evaluation can fundamentally guide the architect and influence the outcome of the decisions. A series of experiments is conducted to demonstrate the applicability and effectiveness of the framework. Results: The design-time evaluation was able to evaluate the architecture options under uncertainty and shortlist candidates for further refinement at run-time. The run-time evaluation has shown to be effective. In particular, it enabled a significant improvement in overall quality (about 40-70% better than reactive and state-of-the-art approaches in some scenarios), with enhanced architecture’s stability. It was also shown to be scalable and robust to various noise levels. In addition, it provides the architect with flexibility to set a monitoring interval to profile the quality of candidates and has parameters that enable the architect to manage the trade-off between architecture stability and learning accuracy. Conclusion: The proposed continuous evaluation framework could potentially aid the architect in evaluating complex design decisions in dynamic environments

    Tools and Algorithms for the Construction and Analysis of Systems

    Get PDF
    This open access book constitutes the proceedings of the 28th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2022, which was held during April 2-7, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 46 full papers and 4 short papers presented in this volume were carefully reviewed and selected from 159 submissions. The proceedings also contain 16 tool papers of the affiliated competition SV-Comp and 1 paper consisting of the competition report. TACAS is a forum for researchers, developers, and users interested in rigorously based tools and algorithms for the construction and analysis of systems. The conference aims to bridge the gaps between different communities with this common interest and to support them in their quest to improve the utility, reliability, exibility, and efficiency of tools and algorithms for building computer-controlled systems

    Tools and Algorithms for the Construction and Analysis of Systems

    Get PDF
    This open access book constitutes the proceedings of the 28th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2022, which was held during April 2-7, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 46 full papers and 4 short papers presented in this volume were carefully reviewed and selected from 159 submissions. The proceedings also contain 16 tool papers of the affiliated competition SV-Comp and 1 paper consisting of the competition report. TACAS is a forum for researchers, developers, and users interested in rigorously based tools and algorithms for the construction and analysis of systems. The conference aims to bridge the gaps between different communities with this common interest and to support them in their quest to improve the utility, reliability, exibility, and efficiency of tools and algorithms for building computer-controlled systems
    corecore