Você está na página 1de 13

Escola de Computao2000 - IME-USP

Sistemas de Tempo Real:


Abordagem Sncrona
Jean-Marie Farines
Joni da Silva Fraga
Rmulo Silva de Oliveira

LCMI - Laboratrio de Controle e Microinformtica


DAS - Departamento de Automao e Sistemas
UFSC - Universidade Federal de Santa Catarina

1
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Introduo

l Os Sistemas de Tempo Real so sistemas que reagem,


gerando respostas,
estmulos de entrada vindos de seus ambientes

l Estas caractersticas os colocam como Sistemas Reativos especiais


que esto submetidos a restries temporais em suas reaes

l O modelo de programao sncrona


parte do principio que
o ambiente no interfere com o sistema (ou o programa)
durante os processamentos das reaes

2
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Introduo

l Na recepo do evento de entrada,


aps um eventual clculo,
a resposta considerada emitida simultaneamente entrada,
o que caracteriza uma reao como instantnea
l O modelo dito sncrono
porque as sadas do sistema podem ser vistas
como sincronizadas com as suas entradas
l A principal conseqncia desta hiptese

a Hiptese Sncrona

uma simplificao conceptual que facilita a modelagem


e a anlise formal das propriedades do sistema

3
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Hiptese Sncrona

l Parte do pressuposto que


existe uma mquina suficientemente rpida
para executar o processamento correspondente reao
em tempos no significativos
l A durao do processamento referente a reao,
se comparado aos tempos relacionados com o ambiente externo,
desprezvel
l O ambiente externo no evolui durante esse processamento
l A hiptese sncrona tambm define que
os eventos ocorridos no sistema
sejam percebidos instantaneamente
em diferentes partes do sistema

4
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Hiptese Sncrona

l O modelo de programao sncrono


natural do ponto de vista do programador
l Facilita a construo e a compreenso de programas
l Permite a verificao destes

l Ferramentas automticas possibilitam


a verificao da correo lgica
(aspectos temporais viraram aspectos lgicos)
desses sistemas so associadas estas linguagens

5
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Hiptese Sncrona

l Um sistema visto como determinista se


a mesma seqncia de entradas
produz sempre a mesma seqncia de sadas
e no determinista em caso contrrio.
l Na abordagem sncrona o sistema sempre determinista
l Na abordagem convencional, depende do escalonamento

l A hiptese de sincronismo permite ainda que


programas escritos numa linguagem sncrona
sejam compilados em autmatos eficientes
l Depois facilmente implementados
em linguagens de programao clssicas
em hardware

6
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Tipos de Linguagens Sncronas

l Quando as atividades de manuseio de dados


so importantes e complexas
enquanto as de controle so reduzidas
l como em aplicaes de processamento de sinal
l Mais apropriado seguir um estilo orientado a fluxo de dados
l Como nas linguagens sncronas declarativas
Lustre e Signal

l Nestas linguagens,
a reao gera sadas
a partir da avaliao de um conjunto de equaes
que as definem em funo das entradas atuais
e das entradas prvias (armazenadas).

7
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Tipos de Linguagens Sncronas

l Quando predominam as atividades de controle


e o manuseio de dados simples
l Como em aplicaes de controle de processos, superviso de sistemas,
protocolos de comunicao, interfaces homem-mquina, drivers de
perifricos
l Mais apropriado um estilo orientado ao fluxo de controle
l Como na linguagem sncrona imperativa Esterel
ou nos autmatos hierrquicos como Statecharts

l Nestas linguagens,
cada reao corresponde a passagem de uma situao
uma nova situao
em termos de controle

8
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Linguagem Esterel

l A linguagem Esterel uma linguagem sncrona


l Desenvolvida a partir de 1982
l Por dois laboratrios franceses do INRIA e da ENSMP
l www.esterel.org
l Os princpios bsicos
Reatividade
Sincronismo
Difuso instantnea
Determinismo

9
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Linguagem Esterel

l O modelo reativo
Sistema entra em ao reagindo presena de estmulos
vindos do ambiente em instantes discretos
l As reaes sendo instantneas, atmicas,
entradas e sadas se apresentam sincronizadas
l O modelo sncrono no permite uma nova ativao do sistema
enquanto o mesmo estiver reagindo ao estmulo atual
l No h concorrncia entre as reaes,
eliminando assim uma fonte de no determinismo
que corresponderia
ao entrelaamento de execues concorrentes
l A noo de tempo fsico na verdade substituda
pela noo de ordem
e de simultaneidade entre eventos

10
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Linguagem Esterel

l Considere a especificao informal:


l Emite uma sada O, to logo que as duas entradas A e B tenham
ocorrido. Reinicialize este comportamento a cada vez que ocorrer uma
entrada R.

module ABRO:
input A, B, R;
output O;
loop
[await A || await B];
emit O
each R
end module

11
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Linguagem Esterel

l O aumento do nmero de entradas


tambm facilmente absorvido
por este estilo de programao
e o mdulo ABCRO conteria apenas esta modificao:

l loop
[await A || await B || await C];
emit O
each R

12
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Comandos

l O atraso: a construo temporal await significa a espera por um


evento.
Quando iniciada, corresponde a uma pausa at o evento ocorrer,
instante no qual conclui a operao: await A
l A emisso de sinal: A emisso instantnea de sinal realizada pela
construo "emit ...
emit O corresponde a emisso instantnea do sinal O,
to logo a ltima entrada A ou B seja recebida.
No pode ocorrer mais de um emit por instante.

13
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Comandos

l Seqncia: p;q transfere imediatamente o controle a q,


quando p termina
l || define as construes
Concorrncia: O operador de paralelismo ||
separadas pelo operador em paralelismo sncrono.
A menos da interveno de algum mecanismo de preempo ou de
exceo, a construo termina quando todos seus ramos terminaram.
Neste exemplo, await A || await B termina instantaneamente
desde que as duas componentes concluam
com as duas entradas A e B sendo recebidas
l Aborto ou preempo: Na construo loop p each R, o corpo p
imediatamente inicializado e executa repetidamente at o instante de
ocorrncia de R no qual p abortado e imediatamente reinicializado
Esta construo dita de aborto ou preempo forte pois o evento R
prioritrio sobre o corpo em execuo.
Se A, B e R ocorrem simultaneamente, O no ser emitido

14
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Exemplo

l Seja a especificao de um medidor de velocidade descrito


informalmente por
Contar o nmero de centmetros por segundo e difundi-lo a
cada segundo como sendo o valor de um sinal Velocidade.
l Os sinais de entrada do mdulo medidor de velocidade
so gerados a cada centmetro e a cada segundo
l So representados por Centmetro e Segundo
l Definem cada um, uma unidade de tempo independente
l Caracterizando desta forma que
o tempo multiforme no modelo sncrono

15
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Exemplo

l Para simplificar o exemplo


supe-se que esses dois sinais no podem ser simultneos
hiptese plausvel devido ao ambiente de execuo
l A relao de exclusividade de um sinal se representa por # numa
declarao relation

l A difuso do valor da velocidade ser feita por um sinal com valor,


Velocidade,
que a cada instante alm do seu estado
contm um valor com tipo integer

16
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Exemplo

module Medidor-Velocidade:
input Centmetro, Segundo;
relation Centmetro # Segundo;
output Velocidade : integer;
loop
var Distancia := 0 : integer in
abort
every Centmetro do
Distancia := Distancia + 1
end every
when Segundo do
emit Velocidade (Distancia)
end abort
end var
end loop
end module

17
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Conceito de Tempo

l A noo de tempo fsico no existe


l O tempo fsico visto como um sinal entre outros
l Qualquer sinal pode ser considerado para definir uma unidade de
tempo independente
l O tempo dito multiforme,
qualquer sinal repetido pode ser considerado como
definindo sua prpria medida de tempo.
l Para representar esta noo, poderia se imaginar uma representao
grfica na forma de vrios eixos de tempo com unidades diferentes
correspondentes aos diversos sinais repetidos
l No mdulo Medidor-Velocidade, as unidades de tempo so
Centmetro e Segundo com eixos de tempo prprios
l A relao entre os mesmos permite que se calcule a velocidade

18
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Outro Exemplo

l Exemplo que descreve o treinamento de um corredor:


l Cada manh, o corredor faz um nmero fixo de voltas num estdio. A
cada volta, ele corre devagar durante 100 metros, depois ele pula a
cada passo durante 15 segundos e termina a volta correndo rpido.
l Determina-se os sinais que correspondero as unidades de tempo
l Os sinais de entrada so Manha, Volta, Metro, Passo e Segundo
l Os sinais de sada so Correr-Devagar, Pular e Correr-Rpido
l Relaes entre sinais so estabelecidas:
Manha e Segundo so sincronizados
Volta e Metro so sincronizados
l Os sinais Correr-Devagar e Correr-Rpido
sero emitidos de forma contnua
l O sinal de sada Pular
ser emitido em reao ao sinal de entrada Passo
19
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Outro Exemplo

module Corredor
constant Nmero-Voltas: integer;
input Manha, Volta, Metro, Passo, Segundo;
relation Manha => Segundo,
Volta => Metro;
output Correr-Devagar, Pular, Correr-Rpido;
. . .

20
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Outro Exemplo

. . .
every Manha do
abort
abort
abort
sustain Correr-Devagar
when 100 Metro;
abort
every Passo do
emit Pular
end every
when 15 Segundo;
sustain Correr-Rpido
when Volta
when Nmero-Voltas Volta
end every
end module
21
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Exemplo do Cinto de Segurana

l Se o motorista liga a chave e no coloca o cinto dentro de 5 segundos


Ento um alarme bipa por 10 segundos
Ou at que a chave seja desligada ou o cinto colocado

input key_on, end_timer, key_off, belt_on, reset;


output start_timer, beep;
loop
abort
present key_on then
emit start_timer(5); await end_timer;
emit start_timer(10);
abort sustain beep when end_timer;
end
when key_off or belt_on
each reset
22
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Execuo de Tarefas Externas

l Procedimentos externos chamados pela construo "call


so considerados como instantneos
l possvel controlar ainda a execuo
de tarefas externas que levam tempo
usando o mecanismo "exec
l Essas tarefas se comportam como procedimentos a serem executados
de forma assncrona com o programa Esterel
l A forma de assincronismo assim introduzida restrita para permitir a
sincronizao com a tarefa apenas quando do trmino da mesma
l Estas tarefas podem ser tambm atividades de um objeto real
l "exec Task (<parmetros-referncia>) (<parmetros-valores>)
return R
permite a execuo de uma tarefa externa
R um sinal de retorno que se restringe a um nico "exec"

23
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Ferramentas

l Linguagem sendo desenvolvida desde 1982 (Frana)


por equipes do INRIA e da Ecole des Mines de Sophia-Antipolis
l Atualmente na sua verso 5
Compilador (atualmente V5.21) esta sendo disponibilizado gratuitamente
no site http://www-sop.inria.fr/meije/esterel/
para arquiteturas Solaris, Linux, AIX, OSF1 e Windows NT
l Esta verso do compilador permite gerar implementaes
em software na forma de uma mquina de estados finita
em hardware na forma de circuitos
l O cdigo gerado (por exemplo em C) pode ser embutido
como um ncleo reativo num programa maior
l Da mesma forma, nas implementaes de hardware,
a lista de gates gerada pode ser embutida em circuitos maiores
l Alm do compilador, existe um conjunto de ferramentas disponveis
para desenvolver e para verificar programas em Esterel
24
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira
Aplicaes

l Avies, automveis, manufatura


Dassault: Controle de aterrizagem
Renault
l Protocolos de comunicao
AT&T: software em switches
Motorola: Circuitos para interface de barramentos
Daimler-Benz: Protocolo de comunicao dentro de veculos
l Interface homem-mquina
l Codesign hardware/software

25
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Concluso

l A abordagem sncrona assume reaes instantneas a eventos externos


l Esta hiptese de reaes instantneas pode ser entendida como
qualquer tempo de resposta menor que
o intervalo de tempo mnimo observvel no ambiente
l Algumas aplicaes de tempo real sustentam esta hiptese
l A utilizao de uma linguagem sncrona (Esterel)
leva implementaes eficientes
baseadas em autmatos ou em circuitos booleanos
l Aplicaes:
Sistemas embutidos, protocolos de comunicao
Drivers para perifricos, sistemas de superviso e controle
Interfaces homem-mquina

26
Sistemas de Tempo Real - Jean-Marie Farines, Joni da Silva Fraga, Rmulo Silva de Oliveira

Você também pode gostar