Tempo Real - Sistemas de Tempo Real
Transcrição
Tempo Real - Sistemas de Tempo Real
Sistemas de Tempo Real CONCEITOS BÁSICOS Conceitos Básicos Computador de Tempo Real é aquele em que o bom funcionamento do sistema depende não apenas dos resultados lógicos da computação, mas também do tempo no qual eles são produzidos. Um computador de tempo real normalmente faz parte de um sistema de tempo real. Conceitos Básicos Um sistema de tempo real muda seu estado em função do tempo. Para efeito de análise é útil de dividir este sistema em conjuntos (clusters). Cluster operador, cluster computacional, cluster controlado Conceitos Básicos Sistema de tempo real distribuído: conjunto de nós computacionais interconectados por uma rede de comunicação de tempo real. Conceitos básicos Um computador de tempo real deve reagir a um estimulo de um objeto controlado dentro de um intervalo de tempo definido por seu ambiente. O instante no qual o resultado deve ser apresentado é chamado de deadline. Conceitos básicos Se o resultado tiver utilidade mesmo após o deadline ter expirado, o deadline é denominado de soft, caso contrário de firm. Se uma catástrofe resultar do não cumprimento do deadline, ele é dito hard. Um computador que tenha pelo menos um deadline hard é denominado de computador de tempo real hard. Requisitos de um sistema de tempo real Funcionais Temporais Dependabilidade Requisitos Funcionais Coleta de dados Controle digital direto Interação homem-máquina Requisitos funcionais: coleta de dados Um objeto controlado muda de estado com o tempo, podendo seu estado atual ser descrito pelo registro dos valores de suas variáveis de estado naquele momento. Nem todas as variáveis de estado são de interesse. Entidades de tempo real (ETD): variáveis de estado significativas. Requisitos funcionais: coleta de dados Cada ETR está na esfera de controle de um subsistema, podendo apenas ele mudar o estado desta ETR. Fora desta esfera de controle, a ETR não pode ser modificada, mas pode ser observada. Requisitos funcionais: coleta de dados Requesito: observação das ETR em um objeto controlado e a coleção destas observações. Observação = imagem da ETR. A imagem tem uma fidelidade com respeito à sua respectiva ETR que é temporária. Este tempo depende da dinâmica do objeto controlado. Requisitos funcionais: coleta de dados Base de dados de tempo real: conjunto de todas as imagens dos ETR que sejam fidedignas em um dado instante. A base deve ser atualizada sempre que uma ETR muda de estado. Requisitos funcionais: coleta de dados A atualização da base de dados pode ser feita: de tempos em tempos dado por um relógio de tempo real (observação engatilhada pelo tempo); ou imediatamente após a mudança de estado (evento) de uma ETR (observação engatilhada por evento) Requisitos funcionais: condicionamento do sinal Dimimuir o erro de medida através de um processo de cálculo de média. Transformar o sinal em unidades de medida padrão (calibragem). Testar a coerência da medida. Requisitos funcionais: Monitoramento de alarmes Detecção de comportamento anormais de ETRs. Registro dos alarmes. Ordem de acionamento dos alarmes pode auxiliar na solução do problema. Requisitos funcionais: Controle digital direto O computador de tempo real deve calcular os “set-points” para os atuadores e controlar o objeto controlado diretamente. O algorítmo de controle deve levar em conta distúrbios aleatórios. Requisitos funcionais: Interação homem-máquina Deve informa o operador sobre o estado atual do objeto controlado. Deve assistir o operador no controle do objeto. Fonte de problemas : mal operação. Interfaces amigáveis Requisitos Temporais Controle de processos com laços de controle de tempo crítico. Requisitos temporais da interface homemmáquina não são críticos. Controle da válvula de controle de fluxo de calor Tempos de retardo e subida da resposta ao degrau Simbolo Parâmetro Esfera de Controle Relacionamentos dobjeto Delay do objeto controlado Objeto controlado Processo físico drise Rise time da resposta ao step Objeto controlado Processo físico dsample Período de amostragem Computador dsample << drise dcomputer Delay do computador Computador dcomputer < dsample Δdcomputer Jitter do delay Computador do computador Δdcomputer << dcomputer ddeadtime Dead time dcomputer + dobjeto Computador e objeto controlado Latência mínima do Jitter Jitter delays trazem uma incerteza adicional no loop de controle que tem um fator adverso na qualidade do controle O jitter pode ser visto como uma incerteza sobre o instante que a entidade de tempo real foi observada. Esse jitter pode ser interpretado como causador de um erro adicional no valor ΔT da variável de temperatura medida. O delay jitter deve ser sempre uma pequena fração do delay (d = 1 ms; delay jitter = µsecs) Latência minima na deteção de erros Aplicações Hard Real-time são safety critical A latência na deteção de erros deve ser da mesma ordem de magnitude que o período de amostragem do loop de controle mais rápido. Isso torna possível se tomar ações corretivas antes que falhas o erro cause grandes defeitos no sistema. Sistemas sem jitter sempre terão menor latência de deteção de erros. Dependabilidade Cobre atributos metafuncionais de um sistema de computador que se relacionam com a qualidade do serviço que um sistema entrega a seus usuários durante um intervalo de tempo. R(t) = exp (-λ(t – t0)) MTTF = 1/ λ Safety Safety é confiabilidade considerando modos de falhas críticos (critical failures modes) Safety critical Hard Real-time são devem ter uma taxa de falhas com relação a modos de falhas críticos em no nível de requisitos de confiabilidade ultra-high (10-9 falhas/hora) Mantenabilidade (Maintainability) Medida do tempo requerido para reparar um sistema após a ocorrência de uma falha. Medida pela probabilidade M(d) que o sistema esteja restaurado após um intervalo de tempo d após a falhas. MTTR = 1/µ Conflito confiabilidade e mantenabilidade. Disponibilidade (Availability) Probabilidade que o sistema esteja disponível em um tempo t+t1, dado que ele estava operacional em t. A = MTTF/(MTTF + MTTR) MTBF = MTTF + MTTR Relacionamento entre MTTF, MTTR e MTBF Estado do sistema Falha Falha up down MTTR MTTF MTBF Segurança Habilidade de um sistema evitar que pessoas nãoautorizadas acessem uma informação. CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Tempo de Resposta Hard real-time na ordem de milisegundos ou menos (inviável para intervenção humana) devendo ser altamente autônomo. Soft real-time podem ser da ordem de segundos, sem graves consequencias em caso de perda do deadline CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Desempenho em carga Hard real-time – cenário de pico de carga deve ser bem definido e projeto deve gararantir que deadlines serão satisfeitos em todas condições. Soft real-time – desempenho médio é que é importante e operação degradada pode ser tolerada em raros casos de pico de carga CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Controle de passo Hard real-time - computador deve permanecer em sincronia com o estado do objeto controlado em todos cenários operacionais. Soft real-time - pode exercer algum controle sobre o objeto controlado caso não possa processar a carga (extensão do tempo de resposta) CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Safety Hard real-time - deteção de erros deve ser autônoma para o sistema iniciar ações de recuperação dentro do intervalo de tempo ditado pela aplicação. CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Tamanho dos arquivos de dados Sistemas de TR têm pequenos arquivos de dados (RT Database) que é composto de imagens de entidades de TR. Sistemas hard real-time têm ênfase em preservar a fidelidade do RT Database em curto intervalo de tempo Sistemas de processamente de transações a ênfase é na manutenção da intridade dos dados de DB-RT por longo período CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Tipo de Redundância Sistemas on-line – Rollback Hard real-time – rollback não tem muita utilidade: dificuldade de garantir deadline; objeto não-recuperável; fidelidade temporal dos dados no ponto de recuperação em relação ao tempo “agora” CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Fail-Safe versus Fail-operational Para sistemas com hard real-time, um estado seguro dever existir no caso de uma falha crítica (fail-safe). Estado seguro é uma característica do objeto controlado e sistema deve ter alta cobertura de falha. Caso watchdog Inexistência de estado seguro (aviação): sistema deve prover um mínimo nível de serviço em caso de falha crítica CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : Resposta Garantida versus Melhor Esforço Resposta Garantida: se a partir de uma dada hipótese de carga e falha, é possível produzir um projeto que torne possível avaliar a sua adequação sem referência a argumentos probabilísticos, mesmo no caso de pico de carga e cenário de falha (requer análise complexa) Caso contrário: melhor esforço (difícil se garantir operação correta) :CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time: Recursos Adequados X Recursos Indequados Sistemas com Resposta Garantida são baseados em Recursos Adequados (No suficiente em caso de pico de carga e falha). Muitos sistemas que não são safety critical são baseados em Recursos Inadequados (viabilidade econômica). Compartilhamento de recursos e argumentos probabilísticos. CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : EventTriggered versus Time-Triggered Uma ocorrência no fluxo de tempo real (clock) é um evento: inicio, fim, intervalo Um trigger é um evento que causa o inicio de alguma ação (ex: execução de tarefa, envio mensagem) Dependendo do mecanismo de engatilhamento: evento (mudança de estado); tempo, ações iniciadas em pontos pré-determinados do tempo CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL: Hard real-time X Software real-time : EventTriggered versus Time-Triggered Em sistemas engatilhado por tempo, todas atividades são iniciadas pela progressão do tempo. A base de dados de tempo real deve ser atualizada sempre que uma entidade de tempo real mudar de valor, quer periodicamente (time-triggered), ou após um evento que muda o estado do sistema. CLASSIFICAÇÃO DE SISTEMAS DE TEMPO REAL Característica Hard Real-Time Soft-Real Time (on-line) Tempo de resposta Hard-required Soft-required Peak-load performance Predizível Degradado Controle de passo Ambiente Computador Safety Frequentemente crítico Não crítico Tamanho dos arquivos de dados Pequeno/médio Grande Tipo de redundância Ativa Checkpoint recovery Integridade dos dados Short-term Long-term Deteçao de erros Autônomo Assistida pelo usuário Fail-Safe X Fail-Operational Para alguns sistemas hard real-time, um ou mais estados seguro (safe states) podem ser identificados em caso de falha no sistema Watchdog timers Para alguns sitemas, estados seguros não podem ser identificados. Nesse caso, o computador deve fornecer um mínimo de serviço par evitar falhas catastróficas. Resposta Garantida X Melhor Esforço Se começarmos com uma hipótese de carga e falha e fornecermos um projeto que seja possível corresponder a esses requisitos sem referência a argumentos probabilísticos, então, mesmo no caso de carga no pico e cenários de falhas, pode-se falar de um sistema com resposta garantida; caso contrário falamos de um projeto com Melhor Esforço. Recursos Adequados X Recursos não adequados Sistemas de Resposta Garantida são baseados o princípio de Recursos Adequados; os recursos são suficientes mesmos no evento de carga máxima e/ou falhas. Disparo por Eventos X Disparo por Tempo Um disparo (trigger) é um evento que causa o inicio de uma ação (execução de tarefa, comunicação, etc). Na abordagem Disparo por Evento, toda atividade de computação e comunicação são iniciadas sempre que ocorra uma mudança significativa de estado. Na abordagem Disparo por Tempo, toda atividade de computação ou comunicação são iniciadas em pontos pré-determinados no tempo. MODELANDO SISTEMAS DE TEMPO REAL Propósito do Modelo Suposições do modelo para um sistema tolerante a falhas de tempo real: hipótese de carga e hipótese de falha Afirmações sobre tempo de resposta podem somente ser feitas sob a suposição que a carga do sistema esteja abaixo da carga máxima (peak load): hipótese de carga. Propósito do Modelo Um computador tolerante a falhas é projetado para tolerar todas as falhas que são cobertas pela hipótese de falhas as quais ele deve lidar. Se as falhas que ocorrem no mundo real não são cobertas pela hipótese de falhas, então, mesmo um sistema de computador tolerante a falhas perfeitamente projetado irá falhar O que é relevante Noção de Tempo Real: a progressão do tempo físico é de importância central em um computador de tempo real Duração das ações: a execução de um comando constitui uma ação. A duração (tempo de execução) de uma ação computacional ou comunicação entre a ocorrência de um estímulo e a ocorrência da resposta associada uma medida muito importante no domínio do tempo. O que é relevante Dada uma ação a, distingue-se as quatro quantidades seguintes que descrevem seu comportamento temporal: Duração real (ou tempo de execução real): dada um conjunto de entrada x, denota-se por c, o número de unidades de tempo do clock de referência z que ocorrem entre o começo o inicio de a até seu término O que é relevante Duração mínima (cmin): menor intervalo de tempo para completar uma ação a, quantificada sobre todos os dados de entrada possíveis. Pior Caso para Tempo de Execução (Worst-Case Execution Time): WCET é a duração máxima para se completar uma ação a sob as hipóteses de carga e falha, quantificada sobre todos os dados de entrada possíveis. O que é relevante Jitter: jitter para uma ação a é a diferença entre WCET e Cmin. Frequencia de Ativações: número máximo de ativações de uma ação por unidade de tempo. Associado à frequencia tem-se o Período (p) de uma ação a, ou tempo de ciclo (cycle time) Deadline (d) de uma ação a é o instante que o resultado de uma ação deve ser produzida. Elementos Estruturais Visto externamente, uma aplicação de tempo real tolerante a falhas pode ser decomposta em um conjunto de clusters computacionais que se comunicam. Cada cluster computacional pode ainda ser particionado em um conjunto de unidades tolerantes a falhas (FTUs) conetadas por uma rede local de tempo real. Cada FTU consiste de um ou mais nós computacionais. Elementos Estruturais: Tarefas (Tasks) Uma tarefa é a execução (em um nó) de um programa sequencial, que começa pela leitura de um dado de entrada e o estado interno da tarefa, e termina com a produção dos resultados e a atualização do estado interno da tarefa. O intervalo de tempo entre o inicio e o término caracteriza seu tempo de execução c, em um dado hardware. O Sistema Operacional (SO) gera um sinal de controle que inicia a execução de uma tarefa. Elementos Estruturais: Tarefas (Tasks) Uma tarefa que não tem um estado interno no ponto que ele é ativada é chamada tarefa sem estado (stateless tak); caso contrário, ela é chamada tarefa com estado. Tarefa Simples (S-Task): não existe nenhum ponto de sincronização dentro da tarefa, isto é, quando ela inicia, ela continua até seu término. Uma vez que ela não pode ser bloqueada dentro do corpo da tarefa, seu tempo de execução não depende diretamente do progresso de outras tarefas no nó computacional (c pode ser extendido devido a preempção) Elementos Estruturais: Tarefas (Tasks) Tarefa Complexa (C-Task): contém uma comando de sincronização blocante (semáfore Wait) dentro do corpo da tarefa, devido ao fato dela ter que esperar por uma condição ocorra fora da tarefa, ou até a chegada de uma dada entrada. O WCET de uma C-Task em um nó é uma questão global porque ela depende diretamente do progresso de outras tarefas no nó, ou dentro do ambiente do nó. Processos Periódicos e Esporádicos Periódicos: são ativados em intervalos fixos de tempo. São usados tipicamente para monitoramento sistemático, polling, amostragem de informações de sensores em longos intervalos de tempo. Um processo periódico tem uma quantidade de trabalho pré-determinada a fazer a cada ciclo, ou período, e é, normalmente, liberado (released) no começo de cada ciclo. Processos Periódicos e Esporádicos Periódicos: são ativados em intervalos fixos de tempo. São usados tipicamente para monitoramento sistemático, polling, amostragem de informações de sensores em longos intervalos de tempo. Esporádicos: são ativados por eventos (um sinal externo ou uma mudança de algum relacionamento). Pode ser usado para reagir a um evento indicativo de falha. Processo Periódicos Processo Periódico: P:: loop Wait_for_start_of_cycle; P_code; end loop onde P_code representa o programa para o tarefa P. P (c, p, d), onde c ≤ d ≤ p Processo Periódico P = (c, p, d) d (i-1)p ip c (i+1)p Release de P Processo P é ativado a cada t0 + ip unidades de tempo, onde i = 0, 1,.... e t0 é o tempo da liberação inicial do processo e a i-nésima ativação dever completar antes de t0 + (i-1)p + d Processo Periódico P = (c, p, d) d (i-1)p ip c (i+1)p Release de P O período e o deadline são obtidos, ou derivados, dos requisitos do sistema e, freqüentemente são idênticos. Tempo de computação é encontrado através de simulação, medida ou análise. Processo Esporádicos Processo Esporádico: P:: loop Wait_for_event; P_code; end loop P é bloqueado até o evento ocorrer, sendo bloqueado novamente após execução de P_code P (c, p, d), onde c ≤ d ≤ p ( p = tempo mínimo entre eventos). Na ocorrência do evento, a computação deve ser completada dentro do deadline especificado, i.e, t ≤ te + d (te tempo da ocorrência do evento). Processo Aperiódico Forma de processo orientado a evento que permite que eventos cheguem simultâneamente (p = 0), ou dentro de um tempo arbitrariamente pequeno entre eles. Teoricamente as restrições de tempo não podem mais ser determinísticas. Na prática, ás vezes é possível se usar restrições determinísticas. São soft-real time.
Documentos relacionados
Abordagens de Escalonamento na Perspectiva da Engenharia
( Hipótese de Carga ) – É Suposto um limite para faltas ( Hipótese de Faltas )
Leia mais