Proposta de detecção de falhas para sistemas de tempo real com escalonamento rate monotonic. - Walter Issamu Azevedo Nakano (2010)
Sistemas eletrônicos embarcados de satélites sofrem grandes cargas de radiações ionizantes, afetando diretamente o silício, criando alta probabilidade de falhas no sistema, advindos de panes transientes e permanentes nos circuitos integrados. Devido ao ambiente hostil em que operam sistemas embarcados espaciais, soluções de robustez são necessárias para o aumento da tolerância a falhas. Neste cenário, a detecção de falhas ajuda o sistema a tomar atitudes de emergência para que a operação não seja prejudicada por completo, nestes casos, consideradas catastróficas, devido o elevado custo associado ao desenvolvimento e produto. Este trabalho tem a finalidade propor uma técnica para sistemas embarcados de tempo real, que possa ser capaz de detectar falhas no nível de tarefas, especificamente com a utilização do Kernel de Tempo Real para Sistemas Multiprocessadores - RTEMS. A técnica proposta foi baseada no projeto de satélite universitário ITASAT, que propõe na arquitetura de hardware um processador operacional em conjunto com um redundante a frio (cold standby). Esses processadores são supervisionados por um arbitrador, ou seja, um terceiro processador que em caso de falha do processador nominal, deve tomar a decisão de entrar em modo emergencial ou acionar o processador redundante. Sistemas Embarcados de Tempo Real utilizam-se de algoritmos de escalonamento que definem a próxima tarefa a ser executada. Essas tarefas podem possuir deadlines rígidos ou moderados. Falhas em tarefas com períodos rígidos ocasionam a perda do sistema por completo. O kernel de tempo real RTEMS é dotado de uma estrutura de dados que possui os dados mínimos das tarefas, para que possam ser executadas e escalonadas corretamente. Estes dados podem ser externalizados por hardware através de portas de E/S na ocasião do chaveamento de contexto, que ocorre em toda troca de tarefa na CPU (troca de contexto). Propõe-se nesse trabalho a captação desses dados para efetuar análises de detecção de falhas, através do comportamento das tarefas que estão sendo executadas no sistema em tempo real.