Você está na página 1de 40

Universidade Federal do Amazonas

Departamento de Eletrnica e Computao

Sistemas de Tempo Real

Lucas Cordeiro
lucascordeiro@ufam.edu.br

Alan Burns and Andy Wellings, 2001

Notas de Aula
Estes slides so baseados nos livros:
Prof. Alan Burns da Universidade de York : http://wwwusers.cs.york.ac.uk/~burns/
Prof. Alan Shaw da Universidade de Washington:
http://www.cs.washington.edu/people/faculty/shaw/
Prof. Joost-Pieter Katoen da Universidade de Aachen:
http://www-i2.informatik.rwth-aachen.de/~katoen/

Os slides esto disponveis em:


http://home.ufam.edu.br/lucascordeiro/ptr/

Objetivo do Curso
Fornecer aos alunos, conhecimento terico para a
elaborao de projetos e verificao de sistemas de
tempo real
Dominar as peculiaridades destes sistemas, sendo
capazes de analisar e projetar, de forma confivel,
sistemas de hardware e software que possuam tais
caractersticas

Ementa do Curso (1)


Introduo: o mundo dos sistemas de tempo real
Arquiteturas de software para sistemas de tempo real
Especificaes de requisitos e de projeto de tempo real
Sistemas de mquinas de estados
Especificaes declarativas
Predio de tempo de execuo do pior caso (WCET)
Escalonamento de tarefas em sistemas em tempo real
Sincronizao de processos concorrentes
Acesso a perifricos
Gerenciamento de entrada e sada (E/S)
Linguagens de programao que atendem s
especificidades de tempo-real

Ementa do Curso (2)


Introduo a Verificao de modelos
Verificao explcita e simblica
Lgica temporal linear e de rvore de computao
Grafos de fluxo de controle
Semntica de programas
Satisfao booleana
Teorias do mdulo da satisfao
Exemplo de aplicaes

Contedo da Avaliao
Lista de exerccios: Ao final de cada captulo
Prova parcial: Introduo aos sistemas de tempo real;
projetando sistemas de tempo real; desenvolvimento de
pequenos sistemas de tempo real; desenvolvimento de
grandes sistemas de tempo real; escalonamento;
algoritmos clssicos; tarefas peridicas; excluso mtua
e programao concorrente
Seminrios: Apresentao de seminrios referente a
um artigo recente relacionado ao tpico de sistemas de
tempo real
Projetos: Desenvolvimento de uma aplicao realstica
de tempo real

Contedo da Avaliao
Prova Final: Todo o contedo da disciplina incluindo os
seminrios.

2 NPP + NS + NP
Mdia Parcial (MP) =
4
2 MP + PF
Mdia Final (MF) =
3
NPP = Nota da Prova Parcial
NS = Nota dos Seminrios
NP = Nota dos Projetos

Referncias Bibliogrficas (1)


Burns, Alan e Wellings, Andrew J., Real-Time Systems
And Programming Languages, Addison Wesley, 2009
Shaw, Alan C., Sistemas e Software De Tempo Real,
Bookman Companhia Ed, 2003
Kopetz, Hermann, Real-Time Systems : Design Principles
for Distributed Embedded Applications, Kluwer Academic,
1997
Cooling, J.E., Software Engineering For Real-Time
Systems, Addison Wesley, 2002
Jean J. Labrosse, MicroC/OS II: The Real Time Kernel,
CMP Books, 2002
John Barnes, Programming in Ada95, Second Edition,
Addison Wesley, 1998

Referncias Bibliogrficas (2)


Baier, C. and Katoen, J.-P. Principles of Model Checking.
The MIT Press, 2008
Berard, B.; Bidoit, M.; Finkel, A. and F. Laroussinie
Systems and Software Verification: Model-Checking
Techniques and Tools. Springer, 2001
Clarke. E.; Grumberg, O. and Peled, A. Model Checking.
The MIT Press, 2000

Referncias Bibliogrficas (3)

Referncias Bibliogrficas (4)

Referncias Bibliogrficas (5)

O que um Sistema de Tempo Real?


Um sistema de tempo real qualquer sistema de
processamento de informao que deve:
responder a um estmulo de entrada gerado externamente
dentro de um perodo de tempo finito e especfico
A corretude depende no somente dos resultados lgicos,
mas como tambm do tempo que o resultado foi entregue
Falha para responder to ruim quanto uma resposta errada!

O computador um componente dentro um sistema maior


de engenharia => EMBEDDED COMPUTER SYSTEM
99% de todos os processadores so destinados para o
mercado de sistemas embarcados

Definio (1)

Young (1982) define um sistema de tempo real como:


any information processing activity or system
which has to respond to externally input stimuli
within a finite and specified period
Uma outra definio (Randell et al., 1995):
A real-time system is a system that is required to
react to stimuli from the environment (including
the passage of physical time) within time intervals
dictated by the environment

Definio (2)
by Alan Shaw
So sistemas que monitoram, respondem ou
controlam um ambiente externo
Ambiente conectado ao sistema de computao (SC)
atravs de sensores, atuadores e outras interfaces
de E/S.
O SC deve satisfazer a vrias restries,
principalmente as impostas a ele pelo comportamento
de tempo-real do mundo externo
Pode ser chamado de sistema reativo (se reagir a
eventos externos) ou sistema embarcado (se estiver
dentro de um sistema maior)

Terminologia
Hard real-time sistemas onde absolutamente imperativo que
as respostas ocorram dentro de prazo de entrega solicitado
(sistema de controle de vo)
Soft real-time sistemas onde os prazos de entrega so
importantes, mas continuaro funcionando corretamente se os
prazos no forem atendidos ocasionalmente (sistema de aquisio
de dados)
Real real-time sistemas que so hard real-time e que os tempos
de respostas so curtos (sistema de guia de mssil)
Firm real-time sistemas que so soft real-time mas que no
existe benefcio de entregas de servio com atraso.
Um nico sistema pode ter sub-sistemas hard, soft e real real-time
(funo custo associada com cada prazo de entrega)

Sistema de Controle de Fludo


Deve responder em um perodo
de tempo especfico para no
sobrecarregar o equipamento
conectado no fim do tubo

Interface
Tubo

Leitura do fluxo
de entrada

Processamento

ngulo de sada
da vlvula
Tempo

Computador

Medidor de fluxo

Pode envolver
uma computao
complexa para
calcular o novo
ngulo
Vlvula

Planta de Torrefao de Gro

Caixa

Fornalha
Tanque de
combustvel
Gro
Tubo

Combustvel

Estao de Empacotamento

Chave
Computador

Chave
Linha de montagem

Campainha
Controlador
de linha
0 = para
1 = roda

Caixa

Sistema de Controle de Processo


Transdutor gera um sinal
eltrico proporcional a
quantidade fsica sendo
medida

Computador
do controle
de processo

Conversores A/D e D/A


podem ser inseridos no
processo

Atuador
Transdutor
de temperatura

Vlvula
Materiais
Qumicos

Sensor
Planta

Misturador

Produto
acabado

Sistema de Controle de Produo


Uso de computadores para
reduo de custos de
produo e aumento da
produtividade

Sistema de controle
de produo

Produto
finalizado
Partes

Mquinas

Manipuladores

correia
transportadora

Precisam ser controlados e coordenados pelo computador

Sistema de Controle e Comando


Consiste de um conjunto
complexo de polticas,
dispositivos de coleta de
informaes e proc.
administrativos para
habilitar tomadas de
deciso

Comando

Controle de trfego areo,


reserva de assentos de
avies, etc

Computador de
Controle e Comando

Temperatura, Presso, Potncia, Corrente, Tenso


Terminais

Sensores/Atuadores

Monitor de Usina Nuclear


Sistema opera com redundncia e eleio sobre os resultados

Mantm o
tempo
decorrido
reconfigura o
hardware

FG

BG

Timer (T)
Falhas (F)

despachante

Processamento (P)
Teste e exbio
Processa o fluxo de
lquido de
resfriamento

Outros Exemplos...
Sistemas de controle de veculos para automveis,
metrs, aeronaves, ferrovias e navios
Controle de trfego para auto-estradas, espao areo,
trilhos de ferrovias e corredores de navegao martima
Controle de processo para usinas de energia,
indstrias qumicas e para produtos de consumo, como
refrigerantes e cerveja
Sistemas mdicos para radioterapia, monitoramento
de pacientes e desfibrilamento
Uso militares como controle de tiro, rastreamento e
sistemas de comando e controle
Sistema de manufatura com robs

Outros Exemplos...
Telefone, rdio e comunicao por satlite
Jogos por computador
Sistemas de multimdia que provm interfaces
textuais, grficas, de udio e de vdeo
Sistemas domsticos para monitoramento e controle
de eletrodomsticos
Sistemas de automao predial que controlam
temperatura ambiental, iluminao, portas e elevadores

Um Sistema Embarcado Tpico


Relgio
de Tempo
Real

Algoritmos para
Controle Digital

Log de dados

Interface

Sistema de
Engenharia

Sistema de monitoramento
remoto

Banco de
Dados
Recuperao de
dados e display

Console do
operador

Interface do
operador

Dispositivos
de display
Computador de Tempo Real
(as aes so geralmente
executadas de modo seqencial,
mas dando a iluso de serem
simultneos)

Um Sistema Embarcado Distribudo (1)


Nodo

Nodo

Nodo

Rede genrica

Um Sistema Embarcado Distribudo (2)


Memria

Memria

...

Memria
Barramento

Relgio
de Tempo
Real

Cache
Processador

...

Memria
privada

Controlador
Tipos de interrupo:
polling e prioridade

Dispositivos
E/S

Atuadores,
sensores e vdeos

LPC3250
Principais caractersticas:
ARM9 208MHz
64MB DRAM
64MB SRAM
Ethernet 10/100
USB OTG
LCD
touchscreen 3.2''

Caractersticas de um STR (1)


Grandes e complexos variam de algumas centenas
de linhas em assembly ou C para milhes de linhas de
ADA estimado para o Space Station Freedom
Tamanho do sistema est relacionado a variedade (nmero de
instrues, esforo de desenvolvimento, responder a eventos
externos)

Controle concorrente dos componentes do sistema


dispositivos que operam em paralelo no mundo real
(melhor modelar este paralelismo atravs de entidades
concorrente no programa)
Facilidade de interagir com o hardware de propsito
especial precisa ser capaz de programar os
dispositivos em uma maneira abstrata e confivel

Caractersticas de um STR (2)


Extrema confiabilidade e segurana sistemas
embarcados tipicamente controlam o ambiente no qual
eles operam; falha para controlar pode resultar em perda
de vidas, danos ao meio ambiente e perda econmica
Garantia nos tempos de resposta ns precisamos ser
capazes de prever com confidncia o tempo de resposta
no pior caso para os sistemas; eficincia importante
mais previso essencial
Nem todo STR exibe todas estas caractersticas, porm as
linguagens e SOs usados para desenvolver STR devem
fornecer facilidades que suportem estas caractersticas

Manipulao de Nmeros Reais (1)


Um Simples Controlador Analgico
Sinal de
referncia

Sinal de
erro

Vetor de
variveis de
entrada

Entidade
controlada

Vetor de
variveis de
sada

Feedback

necessrio ter um modelo matemtico da planta usando equaes


diferenciais de primeira ordem (teoria de controle)

Manipulao de Nmeros Reais (2)


Um Simples Controlador Computadorizado

Dentro do computador, as equaes diferencias podem ser


resolvidas atravs de tcnicas numricas

So Sistemas de Tempo Real?


Um sistema de folha de pagamento que produz contracheques de empregados a cada duas semanas?
Um sistema de cadastro esportivo que registra, mantm e
exibe resultados durante eventos esportivos, tais como
jogos de beisebol ou provas de atletismo?
Um controlador de cancela em uma interseo de trilhos
de ferrovia com uma rodovia, o qual controla a abertura e
o fechamento do acesso ao cruzamento, para assegurar
que a rodovia fique bloqueada sempre que um trem
esteja na rea de interseo?
Um sistema de registro mdico que mantm os histricos
mdicos de pacientes numa clnica?

Por qu Garantir Confiabilidade do Cdigo? (1)


Funcionalidade demanada aumentou de forma significativa
teste e reviso em pares

Processadores multi-core com memria compartilhada


escalvel
void *threadA(void *arg) {
void *threadB(void *arg) {
lock(&mutex);
lock(&mutex);
x++;
y++;
if (x == 1) lock(&lock);
if (y == 1) lock(&lock); (CS2)
unlock(&mutex); (CS1)
unlock(&mutex);
Deadlock
(CS3)
lock(&mutex);
lock(&mutex);
x--;
y--;
if (x == 0) unlock(&lock);
if (y == 0) unlock(&lock);
unlock(&mutex);
unlock(&mutex);
}
}

Por qu Garantir Confiabilidade do Cdigo? (2)


Buffer Circular usando FIFO:
static char buffer[BUFFER_MAX];
void initLog(int max) {
buffer_size = max;
first = next = 0;
}

Caso de Teste:
Checar se as mensagens so
adicionadas e removidas do buffer
circular

int removeLogElem(void) {
first++;
return buffer[first-1];
}

static void testCircularBuffer(void) {


int senData[] = {1, -128, 98, 88, 59,
1, -128, 90, 0, -37};
int i;
initLog(5);
for(i=0; i<10; i++)
insertLogElem(senData[i]);
for(i=5; i<10; i++)
ASSERT_EQUAL_INT(senData[i],
removeLogElem());
}

void insertLogElem(int b) {
if (next < buffer_size) {
buffer[next] = b;
next = (next+1)%buffer_size;
}
}

Por qu Garantir Confiabilidade do Cdigo? (3)


Buffer Circular usando FIFO:
static char buffer[BUFFER_MAX];
void initLog(int max) {
buffer_size = max;
first = next = 0;
}
int removeLogElem(void) {
first++;
return buffer[first-1];
}
void insertLogElem(int b) {
if (next < buffer_size) {
buffer[next] = b;
next = (next+1)%buffer_size;
}
}

Mas: implementao falha!


O array buffer do tipo char e
tamanho BUFFER_MAX
Incrementa first sem checar o
limite do array: buffer overflow
Atribui uma varivel inteira a
um char: typecast overflow

Linguagens de Programao de Tempo Real


Linguagem Assembly
Linguagens de sistemas sequnciais p.e. RTL/2,
Coral 66, Jovial, C
Normalmente exigem suporte de SO

Linguagens concorrentes de alto nvel. Ao da crise do


software. p.e. Ada, Chill, Modula-2, Mesa, Java.
No exigem suporte do SO!

Ns consideraremos:
Java/Real-Time Java
C e Real-Time POSIX
Ada 95

Linguagens de Tempo Real e SO

Programas
do usurio

Programa do usurio

Sistema

Incluindo SO

Hardware

Hardware

Operacional

Configurao de um SO Tpico

Componentes do sistema

Configurao Tpica Embarcada

Resumo
Duas principais classes podem ser identificadas:
sistemas de tempo real crtico
sistemas de tempo real brando

As caractersticas bsicas de um sistema embarcado ou


de tempo real so:

tamanho e complexidade
manipulao de nmeros reais
extrema confiabilidade e segurana
controle concorrente de componentes isolados do
sistema
controle de tempo real
interao com as interfaces do hardware
implementao eficiente