Derivando Uma Falha de Resiliência Métrica para Sistemas em Tempo Real
Por: tetss • 11/10/2016 • Artigo • 4.707 Palavras (19 Páginas) • 552 Visualizações
Derivando uma falha de resiliência métrica para Sistemas em tempo real
A maioria dos sistemas de tempo real é obrigada a cumprir com o tempo rigoroso e requisitos lógicos, mesmo na presença de falhas. Embora políticas de escalonamento e análises de escalonabilidade tenham sidos estendidos para lidar com tolerância à falhas, não se tem dado muita atenção à medição da resiliência de falha de tais sistemas. Normalmente, os padrões de erro de pior caso são artificialmente assumidos e o sistema de correção é verificado. No entanto, tais padrões não representam a capacidade do sistema tolerar falhas, nem considerar o comportamento global do sistema na presença de falhas. Neste trabalho, é definido resiliência a falha métrica e apresentado uma análise baseada em simulações. Depois será mostrado como os resultados da simulação podem ser analisados estatisticamente.
Sistemas em tempo real são caracterizados pela sua necessidade de atender aos requisitos de lógica e tempo. Partindo do pressuposto de que qualquer sistema pode falhar, é necessário assegurar que tais requisitos serão satisfeitos, mesmo na presença de falhas. Por exemplo, um erro ou uma perda de prazo no sistema de controle de um voo pode causar perda de vidas humanas.
A fim de garantir que os prazos sejam cumpridos em um sistema em tempo real, todas as tarefas tem sua execução ordenada de acordo com uma política de agendamento, levando em consideração os seus requisitos de tempo. Dada uma política de escalonamento, a correção do tempo pode ser verificada por meio de análise de escalonabilidade. Se as técnicas de tolerância à falhas são consideradas, tanto a política de agendamento quanto a análise de escalonabilidade, devem ser adaptadas para levar em conta a sua execução. Em geral, a análise de escalonabilidade é construída assumindo que o comportamento do sistema é conhecido no pior caso e isto também tem sido verdade quando os aspectos de tolerância à falhas são considerados.
Várias técnicas de programação têm sido desenvolvidas, apesar da dificuldade na incorporação de mecanismos de tolerância à falhas na análise de escalonabilidade. A maioria delas são baseadas na redundância de tempo, o que pode ser alcançado proporcionando a detecção e recuperação de erros. Nessas técnicas, mediante a detecção de um erro, uma tarefa de recuperação está prevista para fornecer as ações necessárias para manter a correção do sistema. Esta abordagem é adequada para lidar com falhas transitórias, apontadas como as falhas mais frequentes.
A abordagem usual assume artificialmente o pior caso padrão para ocorrências de erro. O esquema de recuperação é baseado na re-execução da tarefa com defeito ou executando uma versão alternativa dela. Outra abordagem fixa um número máximo de erros por tarefa do sistema e a recuperação é realizada com base na execução de uma tarefa alternativa.
Tais abordagens assumem um padrão de erro para o pior caso, que não pode refletir a capacidade do sistema real para tolerar faltas. De fato, considerar padrões de erro como falhas métricas de resiliência pode não ser adequado devido a duas razões principais: (a) os padrões de erro assumidos estão normalmente ligados a um sistema específico e/ou modelos de falha e (b) eles não assumem o comportamento geral do sistema em consideração, com foco nos cenários de pior caso. Decidir qual técnica melhor se adapta a uma aplicação pode não ser simples e não podem ser comparadas imediatamente.
Os sistemas de tempo real geralmente são estruturados como um conjunto de tarefas , onde cada tarefa representa uma unidade de execução. Uma tarefa pode ser ativada várias vezes durante a execução do sistema. Cada ativação de tarefa é normalmente chamada de trabalho. Algumas tarefas importantes atribuídas são o período, o prazo relativo, o tempo de execução do pior caso e o tempo de execução de recuperação, que podem ser descritos por , respectivamente.[pic 1][pic 2]
O cumprimento de todos os prazos das tarefas é um requisito importante para sistemas de tempo real rígido. Na verdade, quando tal exigência pode ser cumprida, o sistema é dito escalonável. A fim de garantir requisitos de pontualidade para um determinado sistema, todas as tarefas em tem de ser encomendados de acordo com alguma política de escalonamento. As políticas de escalonamento mais populares são orientadas pela prioridade. Duas bem conhecidos são: a Rate Monotonic (RM) e Earliest Deadline First (EDF). O primeiro é um algoritmo de escalonamento com prioridade fixada de acordo com as prioridades das tarefas atribuídas por ordem inversa de seus períodos. O segundo é uma política dinâmica, em que os mais urgentes recebem a mais alta prioridade. [pic 3]
Dado um conjunto de tarefas e uma política de escalonamento, o papel da análise de escalonabilidade é verificar se as tarefas cumprem seus prazos. Por exemplo, é bem conhecido que sob RM um conjunto de tarefas é escalonável se a relação na equação se mantém.[pic 4][pic 5]
[pic 6]
Para EDF, a escalonabilidade deve ser assegurada se, e somente se,
[pic 7]
Normalmente, a escalonabilidade do sistema é avaliada em cenários livres de falhas, embora estes tipos de equações sejam estendidas para tirar os efeitos de erros. Por exemplo, considerando um conjunto de tarefas agendado por RM em que ocorre um único erro durante um hiper período. A equação (1) pode ser facilmente adaptada para
[pic 8]
Supondo que uma tarefa é liberada no tempo , o seu prazo absoluto é dado por . O prazo relativo de cada tarefa não é maior do que o seu período . Além disso, as tarefas são assumidas como sendo independentes umas das outras e o seu pior caso de tempo de execução é conhecido e não é maior do que o min . A tolerância ao erro é fornecida através da execução de ações de recuperação após a detecção de erro. Estas ações, na verdade, representam a execução de qualquer código extra. A ação de recuperação associada a um determinado erro em pode ser uma re-execução de ou a execução de uma tarefa alternativa. Se erros são detectados durante a recuperação de , outras ações de recuperação podem ser liberadas.[pic 9][pic 10][pic 11][pic 12][pic 13][pic 14][pic 15][pic 16][pic 17][pic 18]
...