3. Definição
Sistema de Tempo Real (STR) é um sistema computacional que deve
reagir a estímulos oriundos do seu ambiente em prazos específicos.
Possuem restrição temporal.
4. Pré-requisitos
• Resultado com dados corretos (correctness)
• Resultado gerado em um prazo específico (correção temporal ou
timeliness)
5. Uma resposta ou reação após o prazo (falha temporal)
pode ser sem utilidade ou até representar uma
ameaça.
Sistema reativo com restrição temporal:
6. Sistemas embarcados tais como:
Lavadora de roupa.
Sistemas de controle de tráfego aéreo e ferroviário.
Carros autônomos, aviões e sondas espaciais.
Aplicações domésticas multimídia.
7. O lançamento do primeiro voo espacial foi atrasado, por que foi
encontrado um problema em um processador de controle redundante.
Havia uma chance de 1 em 67 (1.5%) de dessincronização.
8. Mísseis Patriot foram usados durante a Guerra do Golfo para proteger a
Arábia Saudita.
Quando o radar detectava um objeto voador, o computador calculava a
trajetória e executava uma verificação. Se o objeto passa por uma
trajetória prevista, o Patriot era lançado, senão o fenômeno era
considerado um alarme falso.
9. Em 25 de fevereiro de 1991, o radar
percebeu um míssel Scud, mas
considerou um alarme falso. Alguns
minutos depois, o Scud atingiu a
cidade de Dhahran, causando
vítimas e prejuízo econômico.
10. Descobriu-se que o clock da CPU estava acumulando um atraso de 57
microsegundos por minuto.
No dia do acidente, o computador estava em operação a 100 horas e
acumulou um atraso de 343 milisegundos.
Este atraso gerou um erro de verificação de 687 metros. O bug foi
corrigido no dia seguinte.
11. Tempo
“O que é o tempo? Se ninguém me perguntar, eu sei; se eu tentar
explicar já não sei”. Santo Agostinho
16. Tempo Global
Em um sistema distribuído, permite ter noção de um instante de
referência único em qualquer parte do sistema.
Pode ser físico ou lógico.
19. STR é previsível quando o seu comportamento pode ser antecipado,
antes da sua execução, independentemente de variações ocorrendo a
nível de hardware, da carga e de falhas.
Carga (máxima) computacional de pico, gerado pelo ambiente em um intervalo mínimo de
tempo (ex: alarme).
Tipos e frequências de falhas que o STR deve suportar continuando a atender os requisitos
temporais e funcionais.
20. Além da carga e falhas:
Hardware
Sistema operacional
Linguagem de programação
23. Antecipação probabilista
Estimativas ou simulações que estipulam probabilidades dos prazos a
serem atendidos.
Útil quando a carga computacional
não pode ser conhecida
antecipadamente.
25. Classificação dos STR
Não críticos
Críticos
- Seguros em caso de falha
- Crítico operacionais em casos de falha
26. STR Não Críticos
As consequências de uma falha temporal é da mesma ordem de
grandeza dos benefícios do sistema em operação normal (ex: sistemas
bancários ou de telefonia.
Antecipação probabilista.
27. STR Críticos
As consequências de uma falha temporal excedem em muito os
benefícios normais do sistema (ex: sistema de controle de voo,
sinalização em ferrovias ou controle de plana nuclear.
Comportamento determinista.
28. STR Críticos
Seguros em caso de falha
Um ou vários estados seguros podem ser atingidos em caso de falha
(ex: parada obrigatória de trens).
Crítico operacionais em casos de falha
Na presença de falhas parciais, ainda pode ser fornecido um serviço
mínimo (ex: sistema de controle de voo com comportamento
degradado mas ainda seguro).
29. • Sistema de Resposta Garantida
• Recursos suficientes para a carga de pixo e cenário de falhas
• Sistema de Melhor Esforço
• Estudos probabilistas sobre a carga esperada e cenários de falhas aceitáveis.
• Mais utilizado.
30. Abordagens para a solução de TR
Assíncrona:
• Trata ocorrência de eventos de forma arbitrária mas não simultânea.
• Orientada à implementação.
• Leva em conta características de software e hardware.
Síncrona:
• Cálculos e a comunicação não levam tempo (nível maior de abstração)
• Portabilidade
• Permite simultaneidade entre eventos.
• Abstração facilita especificação e análise de STRs
33. Avanços em hardware vão resolver o
problema
• Lei de Moore
• A demanda por processamento sempre superou os avanços de
hardware
• A utilização otimizada dos recursos finitos é a melhor solução
34. Tempo Real = fast computing
Fast computing: diminuir o tempo médio de resposta de um conjunto
de tarefas
Tempo Real: cada tarefa deve ser executada em um determinado
tempo.
35. Pesquisa de STRs é apenas melhoria de
performance
É também:
- especificação e verificação do comportamento temporal
- como linguagem de programação define o tempo
- Mecanismos de sincronização
- Várias restrições de tempo facilitam soluções eficientes em problemas
de coordenação distribuídos?
36. Os problemas em STR já foram resolvidos por
outras áreas da computação
Frequentemente as outras áreas se preocupam com os valores médios
de performance
37. Muitos STRs são implementados utilizando metodologias e ferramentas
convencionais que não tratam o tempo de uma forma explícita.
39. Especificação e verificação
Como incorporar métrica de tempo
Como abordar as restrições de tempo
Como tratar a possibilidade exponencial de estados possíveis para
verificar que uma situação seja atendida
40. Teoria de alocação de recursos em TR
Algoritmos para alocação (agendamento) de recursos em tempo real.
Algoritmos devem possuir heurísticas, pois enfrentam problemas NP-
completos.
Diferentes tarefas devem ser executadas para atender as restrições
temporais.
41. Sistemas Operacionais em Tempo-Real
Suporte para:
• Restrições de tempo real
• Tolerância a falhas
• Alocação de recursos com restrições temporais
Comunicação, I/O, memória, CPU
• Sistemas distribuídos e tarefas colaborativas.
42. Exemplo:
Nó processa sensor e detecta que carro entrou em área perigosa.
O nó se comunica e espera resposta para executar ação.
Velocidade do carro é uma restrição temporal.
Sistema dinâmico envolvendo vários nós, opera é uma única restrição
temporal (tempo global).
O tempo não pode ser abstraído.
43. Linguagens de programação e metodologias
de desenvolvimento para TR
• Suporte para gerenciamento de tempo
• Checagem de alocação em tempo de compilação (como type-
checking).
• Suporte para programas distribuídos e tolerância a falhas.
44. BDs TR distribuídos
• Em STRs, uma parte considerável dos dados é altamente perecível e
deve ser utilizada rapidamente.
• Concorrência no processamento de transações deve ser aumentada.
• Protocolos de controle de concorrência e algoritmos de alocação
devem ser integrados.
46. Tolerância a falhas
• STR + ambiente = sinergia (ex: avião e computador de controle)
• Falha ao perder informações de componentes (static failure)
• Falha ao responder rápido o suficiente (dynamic failure)
47. Arquitetura de STR
• Topologia de interconexão entre processadores e I/O
• Comunicações com restrição de tempo
• Suporte a tratamento de erros
48. Comunicação em Tempo-Real
• Em um ambiente não TR, é suficiente garantir que a comunicação
ocorra. Em TR, é necessário garantir que a comunicação corra com
restrição temporal.
• Soluções de roteamento que garantam restrição temporal