4 research outputs found
Fault-Tolerant RT-Mach (FT-RT-Mach) and an Application to Real-Time Train Control
Even though real-time systems have the stringent constraint of completing tasks before their deadlines, many existing real-time operating systems do not implement fault tolerance capabilities. In this paper we summarize fault tolerant real-time scheduling policy for dynamic tasks with ready times and deadlines. Our focus in this paper is the implementation, which includes fault-tolerant scheduling, re-scheduling, and recovery mechanisms in the FT-RT-Mach operating system, a fault-tolerant version of RT-Mach. A real-time train control application is then implemented using the FT-RT-Mach operating system. 1 Introduction In train control, correct execution of tasks is determined not only by logical correctness but also by satisfying certain temporal constraints. For example, when a train is moving, real-time collision path algorithms as well as velocity and break control must be carried out within very stringent timing constraints. Tasks with temporal constraints are hard real-time when ..
Détection d'erreur au plus tôt dans les systèmes temps-réel : une approche basée sur la vérification en ligne
La vérification en ligne de spécifications formelles permet de créer des détecteurs d'erreur dont le pouvoir de détection dépend en grande partie du formalisme vérifié à l'exécution. Plus le formalisme est puissant plus la séparation entre les exécutions correctes et erronées peut être précise. Cependant, l'utilisation des vérifieurs en-ligne dans le but de détecter des erreurs est entravée par deux problèmes récurrents : le coût à l'exécution de ces vérifications, et le flou entourant les propriétés sémantiques exactes des signaux d'erreur ainsi générés. L'objectif de cette thèse est de clarifier les conditions d'utilisation de tels détecteurs dans le cadre d'applications « temps réel » critiques. Dans ce but, nous avons donné l'interprétation formelle de la notion d'erreur comportementale « temps réel». Nous définissions la propriété de détection « au plus tôt » qui permet de d'identifier la classe des détecteurs qui optimisent la latence de détection. Pour illustrer cette classe de détecteurs, nous proposons un prototype qui vérifie un comportement décrit par un automate temporisé. La propriété de détection au plus tôt est atteinte en raisonnant sur l'abstraction temporelle de l'automate et non sur l'automate lui-même. Nos contributions se déclinent dans trois domaines, la formalisation de la détection au plus tôt, sa traduction pour la synthèse de détecteurs d'erreur à partir d'automate temporisés, puis le déploiement concret de ces détecteurs sur une plate-forme de développement temps réel, Xenomai. ABSTRACT : Runtime verification of formal specifications provides the means to generate error detectors with detection capabilities depending mostly on the kind of formalism considered. The stronger the formalism is the easier the speration between correct and erroneous execution is. Nevertheless, two recurring issues have to be considered before using such error detection mechanisms. First, the cost, at run-time, of such error detector has to be assessed. Then, we have to ensure that the execution of such detectors has a well defined semantics. This thesis aims at better understanding the conditions of use of such detectors within critical real-time software application. Given formal behavioural specification, we defined the notion of "behavioural error". Then, we identify the class of early detectors that optimize the detection latency between the occurence of such errors and their signalling. The whole generation process has been implemented for specifications provided as timed automata. The prototype achieves early error detection thanks to a preprocessing of the automaton to generate its temporal abstraction. Our contributions are threefold : formalisation of early detection, algorithms for timed automata run-time verification, and prototyping of such detectors on a real-time kernel, Xenomai
Operating system fault tolerance support for real-time embedded applications
Tese de doutoramento em Electrónica Industrial (ramo de conhecimento em Informática Industrial)Fault tolerance is a means of achieving high dependability for critical and highavailability
systems. Despite the efforts to prevent and remove faults during the
development of these systems, the application of fault tolerance is usually required
because the hardware may fail during system operation and software faults are very
hard to eliminate completely.
One of the difficulties in implementing fault tolerance techniques is the lack of
support from operating systems and middleware. In most fault tolerant projects, the
programmer has to develop a fault tolerance implementation for each application.
This strong customization makes the fault-tolerant software costly and difficult to
implement and maintain. In particular, for small-scale embedded systems, the
introduction of fault tolerance techniques may also have impact on their restricted
resources, such as processing power and memory size.
The purpose of this research is to provide fault tolerance support for real-time
applications in small-scale embedded systems. The main approach of this thesis is to
develop and integrate a customizable and extendable fault tolerance framework into a
real-time operating system, in order to fulfill the needs of a large range of dependable
applications. Special attention is taken to allow the coexistence of fault tolerance with
real-time constraints. The utilization of the proposed framework features several
advantages over ad-hoc implementations, such as simplifying application-level
programming and improving the system configurability and maintainability.
In addition, this thesis also investigates the application of aspect-oriented
techniques to the development of real-time embedded fault-tolerant software. Aspect-
Oriented Programming (AOP) is employed to modularize all fault tolerant source code, following the principle of separation of concerns, and to integrate the proposed
framework into the operating system.
Two case studies are used to evaluate the proposed implementation in terms of
performance and resource costs. The results show that the overheads related to the
framework application are acceptable and the ones related to the AOP implementation
are negligible.Tolerância a falhas é um meio de obter-se alta confiabilidade para sistemas
críticos e de elevada disponibilidade. Apesar dos esforços para prevenir e remover
falhas durante o desenvolvimento destes sistemas, a aplicação de tolerância a falhas é
normalmente necessária, já que o hardware pode falhar durante a operação do sistema
e falhas de software são muito difíceis de eliminar completamente.
Uma das dificuldades na implementação de técnicas de tolerância a falhas é a
falta de suporte por parte dos sistemas operativos e middleware. Na maioria dos
projectos tolerantes a falhas, o programador deve desenvolver uma implementação de
tolerância a falhas para cada aplicação. Esta elevada adaptação torna o software
tolerante a falhas dispendioso e difícil de implementar e manter. Em particular, para
sistemas embebidos de pequena escala, a introdução de técnicas de tolerância a falhas
pode também ter impacto nos seus restritos recursos, tais como capacidade de
processamento e tamanho da memória.
O propósito desta tese é prover suporte à tolerância a falhas para aplicações de
tempo real em sistemas embebidos de pequena escala. A principal abordagem
utilizada nesta tese foi desenvolver e integrar uma framework tolerante a falhas,
customizável e extensível, a um sistema operativo de tempo real, a fim de satisfazer às
necessidades de uma larga gama de aplicações confiáveis. Especial atenção foi dada
para permitir a coexistência de tolerância a falhas com restrições de tempo real. A
utilização da framework proposta apresenta diversas vantagens sobre implementações
ad-hoc, tais como simplificar a programação a nível da aplicação e melhorar a
configurabilidade e a facilidade de manutenção do sistema.
Além disto, esta tese também investiga a aplicação de técnicas orientadas a
aspectos no desenvolvimento de software tolerante a falhas, embebido e de tempo
real. A Programação Orientada a Aspectos (POA) é empregada para segregar em módulos isolados todo o código fonte tolerante a falhas, seguindo o princípio da
separação de interesses, e para integrar a framework proposta com o sistema
operativo.
Dois casos de estudo são utilizados para avaliar a implementação proposta em
termos de desempenho e utilização de recursos. Os resultados mostram que os
acréscimos de recursos relativos à aplicação da framework são aceitáveis e os
relativos à implementação POA são insignificantes