Você está na página 1de 34

Sistemas de

Tempo Real e
Tolerantes
Falha
Introduo aos Sistemas de
Tempo Real
Agenda
1. Introduo
2. Sistemas
3. Sistemas de Tempo Real
4. Eventos, determinismo e utilizao de CPU
5. Questes de projeto em STR
6. Equvocos Comuns
7. Histrico


Com a proliferao de sistemas computacionais na sociedade atual,
sistemas com requisitos de tempo real tornam-se cada vez mais comuns.

Essas aplicaes variam muito em relao complexidade e s
necessidades de garantia no atendimento de restries temporais.

Baixa complexidade: controladores inteligentes embutidos em utilidades
domsticas.
Lavadoras de Roupa e Leitores de DVDs.

Complexidade elevada: sistemas militares de defesa, os sistemas de
controle de plantas industriais (qumicas e nucleares) e o controle de
trfego areo e ferrovirio.


Introduo
Introduo
Sistemas de Tempo Real (STR)
Presente em elementos de diferentes domnios.
Militar, espacial, domstico, bancrio, etc.

Introduo
Algumas situaes:
Determinar a correta posio de uma aeronave em um dado instante.
Ativar/Desativar cancela para passagem de trem.
Falha de temperatura em uma usina nuclear.
Apresentar informao em microondas.

Sistemas Computacionais:
Propsito Geral: Processadores programveis.
Propsito Especfico (Hardware): Executam um nico programa.
Domnio Especfico: Otimizado para uma classe de aplicaes.
Exemplo: DSP (Digital Signal Processors)
Introduo
O hardware de computadores de propsito geral resolve problemas pela
execuo repetitiva de macroinstrues, conhecidas, coletivamente como
software.

Utilitrios
Programas de sistema - softwares que faz interface com o hardware,
tais como escalonadores, drivers e utilitrios.

Sistema Operacional
Uma coleo especializada de programas de sistema que gerenciam os
recursos fsicos do computador.

Aplicativos
Programas escritos para resolver um problema especfico
Exemplo: folha de pagamento, estoque e navegao.


Sistema
Sistema
Um sistema um mapeamento de um conjunto de entradas para um
conjunto de sadas.


Sistema
Jobs (tarefas)
Schedule (escalonar)
Sistema
Tempo de resposta:
Tempo entre o estmulo e a resposta do sistema computacional.
t
Sistemas de Tempo Real
Sistemas de Tempo Real
Um sistema que deve satisfazer restries explcitas de tempo de
resposta.
O no cumprimento das mesmas envolve severas consequncias,
incluindo falha.
Um sistema cujo comportamento correto baseado tanto no
fornecimento de resultados corretos, bem como no tempo que estes
resultados so fornecidos.
Sistemas de Tempo Real
Sistema Falho
Um sistema que no pode satisfazer um ou mais dos requisitos
estipulados em sua especificao.

O comportamento correto de um sistema de tempo real depende:
Correo Lgica (correctness): integridade dos resultados obtidos.
Correo Temporal (timeliness): valores de tempo em que so
produzidos.

Uma reao que ocorra alm do prazo especificado pode ser sem
utilidade ou at representar uma ameaa.
Sistemas de Tempo Real
Existem situaes impostas pelas exigncias dos servios a serem
oferecidos a um usurio humano ou computacional.
Exemplo: no caso do manuseio ou da apresentao de vdeos em
sistemas multimdias.

Nesses casos a noo de Servio de Tempo Real utilizada como sendo
um servio que deve ser oferecido dentro de restries de tempo
impostas por exigncias externas ao prprio Sistema Computacional.

Numa generalizao podemos assumir:
Um Sistema de Tempo Real deve ser ento capaz de oferecer garantias
de correo temporal para o fornecimento de todos os seus servios
que apresentem restries temporais.
Sistemas de Tempo Real
Os Sistemas de Tempo Real podem ser classificados conforme a interao
em:

Reativos
So sistemas cujo escalonamento dirigido pela interao com seu
ambiente.
Exemplo: Sistema para controle de incndios que reage ao
pressionar de um boto.

Embarcados (embutidos)
Fazem partes de sistemas maiores no computacionais.
Exemplo: controle de injeo de combustvel, airbag, freios, etc.
Sistemas de Tempo Real
Os Sistemas de Tempo Real podem ser classificados conforme o impacto
gerado por uma falha ao atender seus requisitos de tempo em:

SRT Tolerantes (Soft Real Time) - sistema em que o desempenho
degradado mas no resulta em falhas, no caso de no atendimento de
suas restries de tempo.
Exemplos: Um editor de texto, sistema de folha de pagamento,
sistema de processamento de matrculas.

SRT Rigorosos (Hard Real Time) - sistema em que uma falha relacionada a
um nico deadline pode provocar falhas completas do sistema ou at
mesmo catstrofes.
Exemplos: sistema para controle de freios, Airbag, etc.


Sistemas de Tempo Real
STR Seguros (Firm Real Time) - sistema em que a perda de poucos
deadlines no provocam falha total, no entanto, a perda de uma
quantidade muito grande podem provocar falhas completa do sistema ou
at mesmo catstrofes.
Exemplo: sistema de controle de navegao.

Sistema Tipo de
Sistema
Cenrio
Mquinas de auto-atendimento Tolerante Perda de muitos deadlines no provocaro
falhas catastrficas, somente o
desempenho degradado.
Sistema de navegao embutida para
controle de robs autnomos
agrcolas.
Seguro Excessiva perda de deadlines podem fazer
que o rob danifique toda uma plantao.
Sistema de controle de armas em
caas.
Rigoroso Perda de um nico deadline pode fazer com
que o alvo seja perdido.
Alguns Conceitos
Antes de aprofundarmos na teoria de tempo real devemos revisar/citar
alguns conceitos, so eles:
Eventos
Determinismo
Utilizao de CPU

Evento: qualquer acontecimento que provoque uma mudana no fluxo de
controle.
Exemplos: instanciao de um objeto, if-then, goto, case, chamada de
mtodos, interrupo, etc.
Eventos - Tipos
Eventos Sncronos - eventos que podem ser previstos no fluxo de
controle. Exemplo: desvios condicionais.

Eventos Assncronos - acontecem em pontos imprevisveis do fluxo de
controle e so geralmente causados por fontes externas. Exemplo:
interrupo.

Eventos Peridicos - eventos que ocorrem em intervalos regulares.
Exemplo: Um clock que pulsa regularmente a cada 5 segundos.

Eventos Aperidicos - eventos que no ocorrem em intervalos regulares.

Eventos Espordicos - eventos aperidicos que ocorrem raramente.
Eventos - Tipos
Peridico Aperidico Espordico
Sncrono Cdigo Cclico Instrues condicionais
ou incondicionais
Excees internas
Processo escalonado
por um clock interno.
Coletor de Lixo Trap (diviso por zero,
posio de memria
invlida)
Assncrono Interrupo gerada
por clock
Interrupo regular,
porm sem perodo
fixado.
Exceo gerada
externamente.
Eventos randmicos
Determinismo
Em todo sistema, manter o controle extremamente importante.

O software deve estar apto a antecipar e evitar os estados inconsistentes.

Sistemas controlados por software devem trazer e executar instrues da
rea de memria destinada aos programas.

O sistema deve antecipar como se comportar em todas as circunstncias
possveis.
Determinismo
Sistema Determinstico

Um sistema determinstico se, para cada possvel estado e cada
conjunto de entradas, um nico conjunto de sadas e o prximo
estado do sistema podem ser determinados.

Se um sistema determinstico, todos os eventos que o compem so
determinsticos.

Se um sistema determinstico, possui tempo de resposta conhecido
para cada conjunto de respostas conhecidos, o sistema tambm possui
determinismo temporal.
Utilizao de CPU (U)
Medida do percentual de processamento no ocioso.
Questes de Projeto em STR
Questes de Projeto em STR
Metodologias convencionais so usadas, incorretamente, no projeto e
implementao de sistemas de tempo real.

O tempo no tratado apropriadamente, dificultando a garantia de
implementao das restries temporais.

Os sistemas operacionais de tempo real so para muitos projetistas as
ferramentas suficientes para a construo de sistemas de tempo real.

Prioridades so determinadas sem considerar o grau de importncia
relativa de uma funo da aplicao durante todo o tempo de execuo
da aplicao.
Questes de Projeto em STR
O projeto e implementao de STR requer ateno para numerosos
problemas:

Seleo de hardware e software, e avaliao do trade-off necessrio
para uma soluo barata e eficaz.

Cuidadosa especificao e projeto de STR, levando em considerao
aspectos temporais (medir e predizer tempo de resposta).

Entendimento das caractersticas das linguagens de programao.

Tolerncia a falhas, segurana e teste.
Questes de Projeto em STR
SRT Tolerantes x STR Rigorosos
Caracterstica STR Rigoroso STR Tolerante
Tempo de resposta Requisito alto Requisito desejvel
Desempenho sob alta carga Previsvel No previsto
Segurana Geralmente Crtica No Crtica
Tamanho dos dados Pequeno/mdio Grande
Deteco de erros Autnoma Assistida pelo usurio
Questes de Projeto em STR
Falha-Seguro vs Falha-Operacional

Em sistemas do tipo falha-seguro, o STR ao falhar entra em um estado
seguro.
Sistema de controle de trens.

Em sistemas do tipo falha-operacional, o STR ao falhar deve prover um
conjunto mnimo de servios e continuar operacional.
Sistema de controle de um avio.

Questes de Projeto em STR
Garantia de Resposta vs Melhor Esforo

Em garantia de resposta, o sistema projetado para sempre cumprir seus
deadlines.

Em melhor esforo, o sistema faz o melhor possvel.
Questes de Projeto em STR
Sensvel a Eventos e Sensvel a Tempo

Um dos temas mais polmicos em STR.

Como o nome sugere, sistemas sensveis a eventos reagem a eventos
lanados pelo sistema (ou ambiente) .

Sistemas sensveis a tempo reagem em intervalos de tempo pr-definido,
respectivamente.

Todo sistema sensvel a evento pode ser modelado como um sistema
sensvel a eventos e vice-versa?
Equvocos Comuns
Sistemas de Tempo Real so sinnimos de Sistemas Rpidos.

A rapidez de clculo melhora o tempo de resposta mdio de um
conjunto de tarefas.

Objetivo de um clculo em tempo real o atendimento dos requisitos
temporais das atividades.

O desempenho mdio no tem importncia para o comportamento
de um sistema composto de diversas atividades com restries
temporais.

Mais do que a rapidez de clculo, para os sistemas de tempo real,
importa o conceito de previsibilidade.


Equvocos Comuns
Anlise de taxa monotnica tem resolvido todos os problemas de tempo
real.

H uma teoria universal, largamente aceita metodologia para
especificao e projeto de sistemas de tempo real.

No existe necessidade por construo de novos sistemas operacionais de
tempo real.

O estudo de sistemas de tempo real se resume a teoria do
escalonamento.
Histrico - Linguagens
Primeiros programas
Escritos diretamente em microcdigo, linguagem assembly e mais
tarde em linguagens de alto nvel.

Primeiras linguagens de alto nvel
Fortran, CMS e JOVIAL (linguagens preferidas do exrcito, marinha e
fora area americana, respectivamente).
Histrico-Linguagens
Em 1983 surge ADA
Encomendada pelo Departamento de Defesa Americano para:
Utilizar uma nica linguagem para desenvolvimento de STR.
Possuir construes de alto-nvel
Prover caractersticas que facilitassem a programao de STR.

Em 1995, lanam ADA95

Atualmente, ADA no uma linguagem muito aplicada em STR.
No entanto, algumas empresas automobilsticas (em especial, as
alems), bem como o departamento de defesa americano continuam
fazendo uso dela.
Histrico-Linguagens
Grande parte dos sistemas atuais so desenvolvidos em:
C, C++, Assembly, Fortran, CSP, Esterel.

Java vem ganhando fora nos ltimos anos.
Concluso





"A vida no examinada no vale a pena ser vivida.
Scrates