Você está na página 1de 29

Sistemas de tempo real

had
20 de abril de 2014 T06 1/29
6 Comunicao para tempo real
6.1 O modelo ISO/OSI
Este modelo foi criado no final dos anos 1970s e princpios de 1980s, pela International
Standards Organization e foi chamado Reference Model of Open Systems Interconnection.


Fig. 1: Modelo ISO/OSI

O modelo define a implementao de uma rede em 7 camadas distintas. Cada camada tem
uma funo bem distinta e comunica apenas com a camada imediatamente inferior e a
imediatamente superior. Este empilhamento de camadas faz com que seja referido a este
modelo por network stack. Em cada camada a comunicao efectuada atravs de um
protocolo. No topo da pilha um browser Web pode comunicar com um servidor atravs do
protocolo http, no entanto mais abaixo pode-se comunicar atravs do protocolo TCP/IP,
sendo por vezes referido ao suporte para este protocolo como um TCP/IP stack.
Na camada 4 a 7 so comunicadas mensagens dependentes do protocolo usado. Ao nvel da
camada de rede so comunicados pacotes como por exemplo TCP ou UDP.

Sistemas de tempo real
had
20 de abril de 2014 T06 2/29
6.1.1 Camada fsica (physical layer)
Nesta camada so transmitidos bits sobre um canal de comunicao. Esta camada define
tambm o meio de transmisso, por exemplo par entranado, cabo coaxial, fibra ptica, etc..
tambm definido o tipo de comutao: de circuito ou de pacotes.

Na comutao de circuito, usada por exemplo nas redes telefnicas antigas (analgicas), o
caminho entre dois ns da rede, constitudo por um conjunto ordenado de ns decidido
antes da comunicao se iniciar, permanece constante e exclusivo at que termine. Este
caminho poder ser determinado por um algoritmo de optimizao de recursos.

Na comutao de pacotes, usada por exemplo na internet, no existe caminho
predeterminado entre dois ns. Pacotes diferentes entre dois ns podero seguir rotas
diferentes para atingir o n destino. A deciso da rota efectuada em cada n do caminho,
podendo depender do trfego num dado ramo, baseada na informao do n fonte e no
destino, por exemplo endereos IP. O encaminhamento de pacotes implementado na
camada de rede.

Exemplo de padres desta camada so: Ethernet, Token Ring, RS-232, RS-422, modem p. ex
V.22.

6.1.2 Camada de ligao (data link layer)
Esta camada recebe um stream de bits da camada inferior, e assegura a integridade dos dados
detectando e corrigindo erros. So assim formados frames com os dados mais informao
para deteco e correco de erros. nesta camada so definidos no s a composio dos
frames mas tambm os algoritmos de deteco e correco de erros, como por exemplo:
CRC para deteco de erros e cdigo de Hamming para correco de erros.

Exemplo de padres desta camada so: Ethernet e Token Ring
Repare-se que estes dois padres definem as duas camadas inferiores. J o padro RS-232 ou
RS422, s definem a camada fsica, sendo definida a camada de ligao pelos padres SLIP
(Serial Line Internet Protocol) ou PPP (Point to Point Protocol).

Sistemas de tempo real
had
20 de abril de 2014 T06 3/29
6.1.3 Camada de rede (network layer)
Estabelece a comunicao entre dois ns da rede ou hosts implementando a resoluo de
endereos e definindo como efectuado o encaminhamento (routing).
Os dados so colocados em pacotes com informao da origem e do destino, de modo que
cada n possa determinar qual o prximo num caminho que permita fazer chegar o pacote ao
destino.
Cada n dever ter informao da topologia de rede, possivelmente dinmica (dynamic
routing tables)
Em redes de difuso esta camada poder ser muito simples (thin) ou mesmo no existente.

Exemplo de protocolos desta camada: IP (Internet protocol)

6.1.4 Camada de transporte (transport layer)
Nesta camada as mensagens enviadas pela camada superior so partidas em fragmentos com
tamanhos que a camada de ligao possa enviar. Em cada fragmento adicionada
informao para que a mensagem possa ser remontada pela ordem correcta no destino, por
esta mesma camada.

Exemplos de protocolos desta camada: TCP, UDP

O protocolo TCP (Transmission Control Protocol) dos mais usados na internet, porque
garante a entrega dos pacotes no destino. Em grande parte esta garantia implementada por
um mtodo denominado controlo de fluxo (flow control). Se suceder uma coliso, isto
quando se pretende enviar um pacote para um dado n, mas esse ramo da rede est ocupado
na transmisso de outro pacote, ambos os pacotes so colocados numa fila de espera, uma
em cada um dos ns que tentaram enviar o pacote. Aps um tempo aleatrio (para evitar
nova coliso) cada um dos ns tenta enviar o pacote novamente.

Fig. 2: Coliso de pacotes
sender

SOURCE
DEST





Sistemas de tempo real
had
20 de abril de 2014 T06 4/29

Se a fila estiver cheia o pacote no pode ser armazenado no n (sender) sendo pedido o seu
reenvio quando houver disponibilidade.

O protocolo TCP (User Datagram Protocol) tambm usado vulgarmente na internet, no
entanto no garante a entrega dos pacotes no destino, por exemplo na presena de colises.
Permite assim maior velocidade de transmisso, mas dados sensveis no podem ser
transmitidos, sobre o risco de serem perdidos.
Algumas das suas aplicaes consistem em transmisso de streams de udio e vdeo, devido
sua velocidade, mas a perda de pacotes poder implicar baixa qualidade de vdeo ou udio.

6.1.5 Camada de sesso (session layer)
Esta camada responsvel pelo estabelecimento de sesses. Para acesso a algumas redes
necessria autenticao do utilizador por exemplo para determinar nveis de acesso a
recursos e possivelmente tambm contabilizao destes.

6.1.6 Camada de apresentao (presentation layer)
Esta camada abstrai a camada superior dos dispositivos de rede, implementando servios
virtuais como por exemplo um interface comum para impressoras de rede, ou servidores de
ficheiros.
Nesta camada so tambm efectuadas converses entre tipos de dados. Existe assim um
padro da representao dos dados para a rede, que poder ser diferente do padro de cada
n.
Assim nesta camada os dados so convertidos na origem para o padro da rede e no destino
para o padro desse n. Nesta camada os dados podero ser tambm compressos e
encriptados.
Alguns exemplos de representaes de dados diferentes em cada n podero ser:

- a ordem dos bytes que formam um nmero inteiro (litle ou big endian)
Neste caso em C/C++ as converses podem ser efectuadas com funes como
htonl(), ntohl ( ), htons( ) ntohs ( ), , que significa host to network long int, ,
network to host small int,
Sistemas de tempo real
had
20 de abril de 2014 T06 5/29

- representao dos caracteres (ASCII, UTF, EBDIC, etc.)
6.1.7 Camada de aplicao (application layer)
Esta camada suporta servios ou aplicaes de rede: FTP, Telnet, email, .... Estes comunicam
com protocolos bem definidos:

Exemplos de protocolos desta camada: SMTP (Simple Mail Transfer Protocol), POP3 (Post
Office Protocol), HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol)

6.2 Previsibilidade na comunicao
6.2.1 Motivao
A utilizao de uma rede j existente para implementar um sistema de controlo distribudo
permite reduzir custos. O hardware e software para certos tipos de redes est vulgarizado e
tem um preo reduzido. Poder tambm estar padronizado permitindo suportar ns
desenvolvidos por diferentes fabricantes.
Alm disso tambm permite modularizar e flexibilizar o projecto do sistema. Veja-se um
exemplo de um ciclo de controlo distribudo onde o actuador, sensor e controlador esto em
ns diferentes de uma rede:

Fig. 3: Ciclo (loop) de controlo distribudo por vrios ns de uma rede

Uma rede com atrasos previsveis necessria de modo que o sinal de controlo seja aplicado
ao processo no intervalo de tempo correcto, seno o sinal de controlo no est correlacionado
com a dinmica do processo (a sada lida pelo sensor), inviabilizando o controlo.
Sistemas de tempo real
had
20 de abril de 2014 T06 6/29
6.2.2 Atrasos e perdas
Numa rede comutada por pacotes podem surgir atrasos em cada n quando:

O pacote posto numa fila de espera para ser transmitido
consultado na tabela de encaminhamento (routing) qual o prximo n para envir o
pacote
o atraso implcito na transmisso do pacote, que efectuado com uma velocidade
finita

Alm disso:

na transmisso de uma mensagem alguns dos pacotes podero ser enviados por rotas
diferentes.
Se a fila de espera de um n intermdio estiver cheia os pacotes so perdidos
(dropped) tendo de ser retransmitidos novamente desde a origem at ao destino pela
camada de aplicao ou de transporte.
Quando ocorre uma coliso, os pacotes aguardam algum tempo antes de voltarem a
ser enviados, de acordo com um qualquer algoritmo que poder ser diferente em cada
n. Assim este tempo de espera no previsvel.

Tudo isto poder provocar atrasos no previsveis numa tarefa de controlo distribuda.


6.2.3 Requerimentos para uma rede de tempo-real
Numa rede de tempo real necessrio conhecer o pior caso de atraso ou latncia para que
uma mensagem seja comunicada entre dois ns.
Colises e rotas dinmicas podem gerar imprevisibilidade.

O modelo por camadas inadequado para uma rede de tempo real pois necessrio que a
camada de aplicao tenha controlo sobres as camadas mais abaixo de rede e de transporte,
mas no modelo OSI cada camada s pode comunicar com as camadas imediatamente acima
ou abaixo:


Sistemas de tempo real
had
20 de abril de 2014 T06 7/29

Aplicao
Apresentao
Sesso
Transporte
Rede
Dados
Fsica

Fig. 4: Aceso directo da camada superior s camadas inferiores
(no suportado no modelo ISO/OSI)

Assim uma implementao de rede de tempo real poder ter menos ou mesmo nenhumas
camadas de abstraco.

6.3 Implementaes de redes para tempo real
6.3.1 CAN
O barramento srie assncrono Controller Area Network (ou Car Area Network), permite a
difuso de informao sobre uma rede, onde o suporte fsico normalmente consiste num par
entranado semelhante ao usado nas redes ethernet. Foi inicialmente concebido nos anos 80
pela Bosch, para conectar Electronic Control Units, ie. unidades de controlo de sistemas
embebidos de um veculo automvel, como por exemplo: unidade de controlo do motor; da
transmisso; das portas; da climatizao; etc.. Hoje em dia o seu uso vulgarizou-se, sendo
usado em muitos carros europeus: Volvo s80/v70, saab 9-5, VW Passat, Ford focus, )
tambm aplicado em sistemas de controlo industriais embebidos.
6.3.1.1 Caractersticas
Este barramento foi concebido para transportar dados em ambiente ruidosos, do ponto de
vista electromagntico, sendo efectuado um cuidadoso controlo de erros nos pacotes que nele
circulam.

Sistemas de tempo real
had
20 de abril de 2014 T06 8/29
As mensagens transportam um conjunto de dados pequeno: 0 a 8 bytes.

A velocidade de transferncia de dados varia entre 10 Kbit/s e 1 Mbit/s. Quanto maior for a
velocidade de transferncia de dados menor deve ser o comprimento do cabo de ligao
ponto a ponto. Para 1 Mbit/s no deve ser superior a 40 metros, j para 125 Kbit/s poder
atingir 500 metros.

O barramento permite comunicao de um emissor para mltiplos receptores.

Tal como na Ethernet cada n que pretende enviar uma mensagem espera que o barramento
esteja livre e depois envia-a. Pode surgir tambm uma coliso se dois ns acederem ao
barramento livre ao mesmo tempo, no entanto a gesto de colises arbitrria.

6.3.1.2 Protocolo CAN
As mensagens, ou frames, so compostas para alm de um conjunto de dados cujo mximo
8 bytes, por um header e um conjunto de stuff bits. O header tem um comprimento fixo de
47 bits e representa informao de controlo para o protocolo CAN, que inclu o ID da
mensagem, destino, bits para efectuar correco de erros por CRC.
Para efeitos de sincronizao inserido um stuff bit com sinal inverso aps 5 bits com o
mesmo sinal consecutivos no frame. No caso do header apenas 34 dos bits so sujeitos a esse
tratamento.
O ratio de stuff bits poder sugerir dividir por cinco o nmero de bits de dados para obter o
mximo de stuff bits. No entanto temos de contar que no pior caso pode ser necessrio
inserir um stuff bit a cada 5 bits, e que esse novo stuff bit tem sinal igual aos prximos 4 bits
de dados:

data bit stream: 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
Bit stream with stuff bits: 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0

Foram inseridos 4 stuff bits em 17 bits de dados ficando um total de 21:
Dividindo 17 / 5 = 3 indicaria apenas 3 stuff bits
Dividindo 17 / 4 = 4 indicaria correctamente os 4 stuff bits
Sistemas de tempo real
had
20 de abril de 2014 T06 9/29

Assim o comprimento de uma mensagem i, com b bytes dada por:




Repare-se que se no for inserido nenhum stuff bit a ltima parcela nula.

O tempo de transmisso Ci dado por o numero de bits multiplicados por

, onde


representa o tempo para transmitir um bit: 1 microsegundo para a velocidade de transmisso
mxima de 1 Mbit/s.
Assim a mensagem mais longa tem um tempo de comunicao igual a

,

As frames so enviadas para todos os ns, o controlador CAN descarta frames que no lhe
so destinadas.
As frames que aguardam envio so guardadas num fila de espera por ordem de prioridade no
controlador ou no device driver.

6.3.1.2.1 Arbtrio de colises
Por coliso entende-se que com o barramento CAN livre dois ns pretende enviar uma
mensagem ao mesmo tempo.
O ID da mensagem um inteiro usado no arbtrio de colises. Quanto menor for este ID
maior a prioridade da mensagem.

No inicio da emisso de um frame enviado o seu campo de ID, desde o bit mais
significativo. Diz-se que se est numa fase de arbtrio, onde outros ns podem enviar
tambm o campo de ID de outros frames bit a bit, sendo necessrio identificar o mais
prioritrio.

A camada fsica de CAN funciona como um AND. Se um n enviar um bit com valor 0, esse
ser o valor colocado no barramento de modo que todos os outros ns recebero um zero.

Sistemas de tempo real
had
20 de abril de 2014 T06 10/29
Se um n envia um bit com valor 1 e recebe no barramento o valor 0, isso indica que existe
uma mensagem mais prioritria, isto com ID menor. Este n desiste de enviar a mensagem
e tentar novamente quando o barramento voltar a estar livre.

Veja-se um exemplo de 3 frames em arbtrio, sendo enviado primeiro o bit mais significativo
do campo ID:

frame Prioridade ID ID em binrio
A mdia 1344 1010
B alta 1306 1010
C baixa 1498 1011 enviou 1 e est 0 no bus desiste
barramento 1010



frame Prioridade ID ID em binrio
A mdia 1344 10101 enviou 1 e est 0 no bus desiste
B alta 1306 10100 frame enviada
C baixa 1498 1011x j desistiu
barramento 10100

Enquanto todos os ns enviam um 1 e no barramento est um 1, ou se os ns enviam um 0 e
no barramento est um 0 continua o arbtrio. Quando um n envia um 1 e no barramento est
um 0 desiste pois existe mensagem com mais prioridade (o ID ser menor). Isto ocorre
porque algum n enviou um 0 (o nmero inteiro ID menor) e o barramento funciona como
um AND para todos os bits enviados pelos ns.
Aps se processar todos os bits do campo de ID sabe-se qual a mensagem mais prioritria,
isto o n que ainda no desistiu, pois ao enviar 1s no recebeu 0s no barramento e por isso
tem o ID menor. Assim este n com foi o nico que no desistiu continua a enviar o resto do
frame, enquanto os outros esperam que o barramento fique livre para se iniciar outra fase de
arbtrio.
Sistemas de tempo real
had
20 de abril de 2014 T06 11/29
6.3.1.3 Escalonamento de mensagens CAN
O escalonamento de mensagens CAN pode ser efectuado seguindo um modelo de prioridade
fixa, onde a prioridade dada pelo inverso do campo ID da mensagem.
Pode-se assim aplicar um teste de escalonamento de tarefas com prioridade fixa baseado na
taxa de utilizao. No entanto neste captulo vai ser introduzida uma metodologia de anlise
mais prxima da realidade do sistema: anlise do tempo de resposta. Neste modelo alm do
pior caso de tempo de execuo de uma tarefa, ou pior caso de tempo de transmisso de uma
mensagem, Ci, tambm tomado em considerao a interferncia de outras tarefas, ou
mensagens mais prioritrias. Assim, para escalonamento com prioridade fixa, o tempo de
resposta de uma tarefa sua activao Ri, ou a latncia mxima de uma mensagem aps ter
sido colocada na fila de espera para ser transmitida dada iterativamente por:



Para tarefas o valor da primeira iterao poder ser considerado 0, ou para poupar iteraes
pelo somatrio do pior tempo de execuo da tarefa i e de todas as tarefas de mais alta
prioridade:



. Para o caso de mensagens ser abordado mais adiante.
Tj representa o perodo de colocao de uma tarefa na fila de prontas a executar, ou o
perodo entre a colocao de mensagens com o mesmo ID na fila de prontas a enviar.
Bi representa o tempo de bloqueio de uma tarefa (ou mensagem) por outra menos prioritria.
Isto s suceder se no houver preempo, onde uma tarefa aps ser iniciada no
interrompida. No caso de mensagens CAN assume-se que aps uma ser enviada no poder
ser interrompida, mesmo que outra mais prioritria pretenda ser enviada, sendo esta ltima
colocada na fila de prontas a enviar.

O tempo de bloqueio de uma mensagem i por outra de menor prioridade, visto no haver
preempo, Bi, ser dado pelo tempo para transmitir a mensagem, ou frame, com maior
tempo de transmisso e com prioridade inferior a i, onde a funo lp(i) retorna o conjunto de
tarefas ou mensagens com menos prioridade que i:


Sistemas de tempo real
had
20 de abril de 2014 T06 12/29
onde como j foi visto para o barramento CAN, o tempo mximo para comunicar a
mensagem mais longa de

. Para tarefas no existe esta limitao.



O somatrio representa o tempo que a tarefa aguarda que se executem tarefas de mais alta
prioridade, ou que a mensagem aguarda que sejam comunicadas outras mensagens de mais
alta prioridade, onde a funo hp(i) retorna o conjunto de tarefas ou mensagens com mais
prioridade que i.
Repare-se que o valor da fraco neste somatrio arredondada para cima, o equivalente
funo ceil().

Como Ri est expresso recursivamente o seu clculo pode ser efectuado por iterao.
Se a latncia de transmisso for menor que a deadline de transmisso para todas as
mensagens (ou tarefas) o escalonamento possvel:



No entanto foi demonstrado para o barramento CAN (Bril et al., 2006) que a anlise do
tempo de resposta optimista se a taxa de utilizao:



for superior a 98%, podendo o conjunto no ser escalonvel, mesmo que a anlise o garanta,
isto mesmo que Ri Di, qualquer que seja o i.
Para mensagens, como por exemplo no barramento CAN, pode-se expressar Ri como:
R
i
= C
i
+ q
i


tem-se que o clculo de q
i
iterativo e assume-se que



A iterao termina quando o valor de

convergir.
Repare-se que no est a ser considerado um jitter quando a mensagem colocada na fila de
espera. Se for considerado poder ser determinado o seu pior caso e inserido como mais uma
parcela Jj no numerador da fraco dentro do somatrio.
Sistemas de tempo real
had
20 de abril de 2014 T06 13/29

Veja-se um exemplo. A seguinte tabela indica um conjunto de mensagens, a sua
identificao, perodo e o pior caso de tempo de comunicao (o mximo de stuff bits).
Assume-se que a deadline igual ao perodo:

frame ID Prioridade Ti = Di (ms) Ci (ms) tamanho do campo de dados (bytes)
A 572 baixa 9 1.35 8
B 347 mdia 5 0.75 2
C 115 alta 2.5 1.35 8

Sabendo que a mensagem maior, com 8 bytes de dados e todos os stuff bits, por exemplo a
frame A tem um tempo de comunicao de:



O que indica uma taxa de transferncia de dados de 100 Kbits/s.
A taxa de utilizao :



logo inferior a 98% por isso a anlise de tempo de resposta pode ser usada para verificar se o
conjunto de mensagens escalonvel.
Comeando com a mensagem A que como a menos prioritria B
A
= 0, ento:


Sistemas de tempo real
had
20 de abril de 2014 T06 14/29

convergiu na segunda iterao de modo que:

R
A
= C
A
+ q
A
= 1.35 + 2.1 = 3.45
Como menor que a D
A
no indica que o escalonamento seja impossvel.
Para a mensagem B, a de mdia prioridade:



convergiu na terceira iterao de modo que:

R
B
= C
B
+ q
B
= 0.75 + 4.05 = 4.8

Como menor que a D
B
no indica que o escalonamento seja impossvel.
Para a mensagem C, a de maior prioridade, o somatrio ser nulo, logo no necessrio
iterar:



R
C
= C
C
+ q
C
= 1.35 + 1.35 = 2.7

Como maior que a D
C
indica que o escalonamento impossvel.
Sistemas de tempo real
had
20 de abril de 2014 T06 15/29
Repare-se que como no h preempo, aps a mensagem menos prioritria A se iniciar no
poder ser interrompida. Se esta mensagem se iniciar imediatamente antes do perodo da
mensagem C esta ter de esperar que A complete em 1.35 ms e depois ser enviada em mais
1.35 ms, de modo que o tempo entre ter pretendido ser enviada, tendo sido posta em espera e
ter sido concluda muito prximo de 2.7 ms, o que ultrapassa a sua deadline de 2.5 ms.

Aumentando a velocidade de transferncia de dados da rede o escalonamento j ser
possvel.
Assumindo que se aumenta por um factor de 10 a velocidade de comunicao isto para o
mximo 1 Mbit/s, o que vai implicar no entanto que a distncia mxima entre ns seja
reduzida para 40 metros e poder ser impossvel dependendo do sistema temos que

(0.001 ms) e que os custos mximos de comunicao sero reduzidos pelo mesmo
factor de 10

frame ID Prioridade Ti = Di (ms) Ci (ms) tamanho do campo de dados
A 572 baixa 9 0.135 8
B 347 mdia 5 0.075 2
C 115 alta 2.5 0.135 8

Tm-se agora uma taxa de utilizao reduzida por um factor de 10:



J devendo ser possvel o escalonamento das mensagens. Pode-se confirmar:
Para a mensagem A:



R
A
= C
A
+ q
A
= 0.135 + 0.21 = 0.345 ms

Sistemas de tempo real
had
20 de abril de 2014 T06 16/29

Para a mensagem B:


agora convergiu logo na segunda iterao de modo que aumentando a largura de banda por
um factor de 10 no implica que todos os q
i
e R
i
sejam reduzidos pelo mesmo factor, que
para a mensagem B resultaria em R
B
= 0.48, no entanto:

R
B
= C
B
+ q
B
= 0.075 + 0.27 = 0.345 ms
Para a mensagem C:



R
C
= C
C
+ q
C
= 0.135 + 0.135 = 0.27 ms

Como se manteve o perodo e as deadlines iguais ao perodo agora D
C
= 2.5 ms j no
ultrapassada, sendo o escalonamento possvel. No entanto neste caso tinha-se uma grande
margem de manobra.

6.3.1.4 Escalonamento com prioridade fixa revisitado
Como j foi referido o critrio de atribuio de prioridades das mensagens no barramento
CAN efectuado de acordo com o ID da mensagem. Quanto menor o ID maior a
prioridade. Assim o escalonamento de mensagens neste barramento efectuado com
prioridades fixas, pois a prioridade das mensagens com o mesmo ID sempre a mesma.

Deste modo, como tambm j foi referido, a anlise da resposta no tempo poder ser usada
para mostrar se possvel o escalonamento com prioridade fixa de um conjunto de tarefas,
por exemplo com os critrios de atribuio de prioridade inversa ao perodo (rate monotonic)
ou inversa meta temporal (deadline monotonic).
Sistemas de tempo real
had
20 de abril de 2014 T06 17/29
A anlise de escalonabilidade com prioridade fixa baseada no critrio de utilizao do CPU,
descrita no captulo 4 no conclusiva em certos casos:

), rate-monotonic

), deadline-monotonic

Se a utilizao do CPU for menor que o majorante um conjunto de tarefas ou mensagens
peridicas escalonvel, se for maior que 100% no . No entanto se a taxa de utilizao
estiver entre o majorante e 100%:
(

)
este teste de escalonabilidade no conclusivo.

J a anlise do tempo de resposta apresenta melhores resultados para algoritmos de
escalonamento com prioridade fixa. Se a latncia de todas as tarefas for igual ou inferior s
suas metas temporais o conjunto escalonvel por um algoritmo de prioridade fixa:



Deve ser salientado que o barramento CAN no preemptivo, isto aps ser iniciado o
envio de uma mensagem no pode ser interrompido, mesmo que uma mensagem de maior
prioridade fique pronta para ser enviada. Assim este atraso modelado pela parcela B
i
. Deste
modo esta formulao tambm poder ser utilizada para analisar o escalonamento no
barramento CAN, se taxa de utilizao do barramento for inferior a 98 % como j referido.
Na anlise de escalonamento de tarefas num sistema preemptivo a parcela B
i
nula.

No entanto a anlise do tempo de resposta s se aplica a escalonamento com prioridade fixa.
Para algoritmos de escalonamento com prioridade dinmica, com critrios como o caso do
Earliest Deadline First, basta mostrar que a taxa de utilizao do CPU menor ou igual a
100% para provar a escalonabilidade:

Sistemas de tempo real
had
20 de abril de 2014 T06 18/29



Vejamos um exemplo da anlise do tempo de resposta para um algoritmo Rate Monotonic
preemptivo, onde o conjunto de tarefas a escalonar tem as seguintes restries:

Tarefa Perodo (Ti) = deadline (Di)
(ms)
Pior tempo de execuo
(Ci (ms))
Prioridade
relativa
1 3 2 P
1
= 1/T
1
= 1/3 alta
2
3
6
9
1
1
P
2
= 1/T
2
= 1/6 mdia
P
3
= 1/T
3
= 1/9 baixa

A taxa de utilizao dada por:


E o majorante para 3 tarefas dado por:

(

)|

)
logo como:
(

)|



O teste de escalonabilidade baseado na taxa de utilizao de Liu e Layland, indeterminado.
Fazendo o mapa de ativao das tarefas verifica-se que o conjunto escalonvel por um
algoritmo rate-monotonic. Neste exemplo no h necessidade de preempo, mas considera-
se que o sistema preemptivo:

activao sncrona





D3 D3
(t=0)



D2

D2 D2



D1 D1 D1 D1 D1 D1










T3












T2














T1
CPU livre 0





1 1
tempo (ms) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
Fig. 5: Mapa de ativao das tarefas
Sistemas de tempo real
had
20 de abril de 2014 T06 19/29
Pode-se usar a anlise do tempo de resposta para mostrar que o conjunto escalonvel por
um algoritmo rate-monotonic preemptivo.

Assim considerando que existe preempo uma tarefa poder ser interrompida por outra de
alta prioridade, mas no por uma de baixa prioridade, de modo que a parcela B
i
= 0:




Para a tarefa 1, a de maior prioridade, o somatrio ser nulo, logo no necessrio iterar:



Como menor que a D
1
= 3,

no indica que o escalonamento seja impossvel.

Para a tarefa 2, a de mdia prioridade:


para convergir mais rapidamente:



convergiu em:


Como menor que a D
2
= 6,

no indica que o escalonamento seja impossvel.

Para a tarefa 3, a menos prioritria:



Sistemas de tempo real
had
20 de abril de 2014 T06 20/29
para convergir mais rapidamente:



convergiu em:


Como menor que a D
3
= 9,

no indica que o escalonamento seja impossvel.

Como todos os Ri Di o escalonamento possvel.

Pode-se verificar no mapa de ativao que os tempos de resposta R
1
=2, R
2
=3 e R
3
=6
correspondem ao pior tempo entre uma tarefa estar pronta a ser ativada e efetivamente
terminar (incluindo atraso e preempo).
A tarefa 1 de maior prioridade nunca atrasada de modo que o seu tempo de resposta
sempre igual ao seu pior tempo de execuo: R
1
= C
1
= 2 ms.
A tarefa 2 atrasada 2 ms pela tarefa 1 em cada perodo de ativao de modo que o seu pior
tempo de resposta sempre R
2
= 3 ms.
A tarefa 3, de menor prioridade, atrasada pelas restantes tarefas. No primeiro perodo de
ativao o seu tempo de resposta de 6 ms e no segundo perodo de ativao de 3 ms. O seu
pior tempo de resposta o que dado pela anlise do tempo de resposta: R
3
= 6 ms.
Embora neste caso no haja interrupo de tarefas, como o sistema preemptivo, noutros
conjuntos de tarefas com outras restries poder haver.


Sistemas de tempo real
had
20 de abril de 2014 T06 21/29
6.3.2 Time Triggered Architecture / Time Triggered Protocol
Esta arquitectura define um sistema computacional independentemente da aplicao.
Algumas das suas caractersticas so:

Idealmente o escalonamento deve ser global e offline. Se tal no for possvel pelo
menos o escalonamento das comunicaes dever s-lo.
Base de dados de tempo real
Tolerante a faltas
Escalvel
Sistema de comunicaes de tempo real tolerante a faltas (TTP)
6.3.2.1 TTP - Time Triggered Protocol
Este protocolo para comunicao em tempo real simples permitindo baixa latncia, com
um tempo mximo de comunicao previsvel e conhecido.
As mensagens so peridicas existindo uma base de tempo global e alta preciso de
sincronizao.
O barramento partilhado suportando velocidades de comunicao entre 2 e 25 Mbit/s.
6.3.2.1.1 TDMA (time division multiple access)
O acesso rede efectuado de acordo com o protocolo TDMA. Sendo o escalonamento de
trfego na rede esttico e offline mais determinstico no que no protocolo CAN.
Assim o nmero de ns na rede esttico.
Cada estao tem acesso exclusivo ao barramento numa ordem sequencial e determinstica,
por um perodo de tempo constante chamado slot, no qual transmite um frame.
A durao de um slot no necessariamente idntica para todas as estaes mas slots
sucessivos da mesma estao tm a mesma durao.
A sequncia de slots onde todas as estaes tm acesso ao barramento chamado round.

Sistemas de tempo real
had
20 de abril de 2014 T06 22/29

Fig. 6: Exemplo de diviso de tempo no protocolo TDMA

No exemplo da figura acima cada round tm um tempo constante T, e dividido em 6 slots,
um para cada estao.

6.3.2.1.2 Tolerncia a faltas
Nesta arquitectura a tolerncia a faltas pode ser implementada de duas formas:

Atravs de FTUs (Fault-Tolerant Unit), onde uma estao composta por mais que um n e
todos replicam as mesmas funes. Assim poder ser possvel tolerar a falha de um ou mais
ns.

Atravs da replicao da comunicao da mesma estao por mais que um slot, ao contrrio
do que mostra o exemplo da figura anterior, onde cada estao s tem acesso a um slot num
mesmo round TDMA.

6.3.3 Switched Ethernet
Tecnologia baseada em barramentos especiais como CAN, TTP, etc, normalmente requerem
hardware e software no vulgarmente usados, sendo por isso solues caras e mais difceis
de implementar.
De to vulgarizada a Ethernet uma soluo relativamente barata quando comparada com as
acima referidas. Alm disso permite velocidades de comunicao superiores: 10, 100,
1000, Mbits/s

round 1 round 2
T T
Sistemas de tempo real
had
20 de abril de 2014 T06 23/29
No entanto no h uma forma de determinar a latncia mxima na transmisso,
principalmente devido a colises e tempo de espera aleatrio para reenvio de pacotes.

A switched Ethernet representa uma soluo que permite latncias previsveis sobre a
Ethernet.
Nesta soluo cada n (host) est conectado a um switch e nunca a um hub, de modo a
reduzir as colises:
- Os pacotes que chegam um hub so difundidos por todas as portas
- Os pacotes que chegam a um switch so enviados apenas pela porta que permite que
cheguem ao destino

A comunicao efectuada em modo full duplex, de modo a reduzir tambm as colises.
Podem no entanto existir ainda colises se dois ns enviarem ao mesmo tempo uma
mensagem para o mesmo destino, podendo ser necessrio o reenvio do pacote, mas
directamente do n fonte para o switch, no existindo outras rotas possveis.

Fig. 7: Topologia switched ethernet

6.3.3.1 Throttle Net
Consiste numa implementao do principio switched Ethernet, onde as mensagens so
peridicas e restrita a quantidade de trfego (throttling), isto existe um limite de largura
de banda para cada n, sendo assim possvel garantir um limite na latncia.

Ethernet switch
host 1
host 4
host 3
host 2
Sistemas de tempo real
had
20 de abril de 2014 T06 24/29
Assim entre dois quaisquer ns podem ser estabelecidos canais de tempo real, com um s
sentido, e onde podem ser especificados os seguintes parmetros:

Frequncia (mxima taxa de transferncia de dados)
Tempo mximo de transmisso (Ci), limitando assim o tamanho de uma mensagem
mxima latncia permitida

assim permitido a admisso de novos canais dinamicamente. Claro que dependente do
cenrio poder no ser possvel garantir os parmetros especificados, sendo necessrio
efectuar uma anlise de escalonabilidade.
A anlise de escalonabilidade de pior caso e toma em conta:

Pior caso de espera nos buffers ou filas dos ns
possibilidade de filas de espera cheias e perda de pacotes (buffer overflow)

Esta anlise efectuada online num n especial chamado Globe Throttle.

Fig. 8: Topologia ThrottleNet

Este n contm a informao global de trfego, escalona os pedidos de trfego de tempo real,
e serve tambm de router para trfego no de tempo real e acesso internet.

Ethernet switch
n 1
n 4
n 3
n 2
Globe Throttle
internet
Sistemas de tempo real
had
20 de abril de 2014 T06 25/29
Assim suportado tambm trfego no de tempo real sendo a largura de banda para este
alocada e limitada.


Fig. 9: ThrottleNet stack
Para efectuar controlo de trfego e distinguir trfego de tempo real de trfego no de tempo
real uma camada de abstraco, TN layer, colocada entre a camada de dados e a camada de
rede.

6.3.4 RTnet
A motivao para esta soluo de rede de tempo real semelhante j apresentada para
switched Ethernet, isto a tecnologia de redes para tempo real (hard-time) baseadas em
barramentos especiais, normalmente competem em termos de reduo no tempo de
transmisso de mensagens e na preciso da sincronizao, mas para cumprir estes requisitos
requerem hardware especial como por exemplo: switches e adaptadores de rede
desenvolvidos para tempo real.

RTnet apresenta uma soluo para redes para tempo real (hard-time) sem modificao dos
componentes Ethernet, podendo os ns estar conectados numa topologia estrela (star) ou
barramento (bus) atravs de switches ou hubs segundo o padro Ethernet. pois uma
soluo de softwareapenas.
Trfego de
tempo real
TN layer
NIC
IP
UDP TCP
dados
fsica
transporte

rede
Trfego no de tempo real
switch NIC
NIC
Sistemas de tempo real
had
20 de abril de 2014 T06 26/29
Para garantir a previsibilidade na comunicao sem hardware especial os ns participantes
esto numa rede fechada onde todos seguem o mesmo protocolo.
tambm necessrio que a RTnet seja suportada por um sistema operativo de tempo real.
Correntemente suportada pelas extenses de tempo real do Linux: RTAI e Xenomai.
Correntemente alm da Ethernet a RTnet pode ser instalada tambm sobre o barramento
firewire.

6.3.4.1 Protocolo de comunicao
O acesso ao barramento segue o protocolo TDMA, onde a durao de cada slot constante
para cada n. Os ns so sincronizados por um n mestre que assin-la o incio de cada
round periodicamente com uma mensagem do tipo Start of Frame.
Deste modo as colises que podem geral imprevisibilidade devido ao tempo aleatrio no
reenvio de pacotes so evitadas.

Os pacotes a enviar so ordenados nos ns de acordo com uma dada prioridade, sendo
enviados por essa ordem durante o slot de cada n em um ou mais rounds.


Fig. 10: Uso do protocolo TDMA na RTnet

No exemplo acima o n 1 no primeiro round tem 4 mensagens espera para serem enviadas.
Supondo que a durao do seu slot permite enviar as duas primeira no primeiro round, as
restantes podero ser enviadas no round seguinte.
round 1 round 2
T T
45
12
23
3
12
3
Sistemas de tempo real
had
20 de abril de 2014 T06 27/29

Para permitir o envio de mensagens para redes no de tempo real, a menor prioridade
atribuda a mensagens no de tempo real tais como pacotes TCP/IP, que sero enviadas para
outras redes por um gateway.

6.3.4.2 Implementao da pilha de protocolos
Uma implementao fortemente determinstica da pilha de protocolo, permite mensagens de
tempo real sobre UDP/IP, ICMP e ARP. No suporta no entanto mensagens de tempo real
em TCP/IP. Repare-se que se no existirem colises, os datagramas UDP/IP so
garantidamente entregues no destino.


Fig. 11: Pilha RTnet e TCP/IP in (rtnet.org 2008)

A camada RTmac permite que ns Ethernet no de tempo real tenham tambm acesso,
disciplinado e da mais baixa prioridade rede de tempo real. A pilha TCP/IP comunica
com a camada RTmac por uma implementao virtual de uma carta de rede (Network
Interface Card), de modo que para todos os efeitos, do ponto de vista da pilha TCP/IP a
camada fsica tem acesso directo ao hardware.

Sistemas de tempo real
had
20 de abril de 2014 T06 28/29
6.3.4.3 O servio/protocolo RTcfg
O suporte para entrada de novos ns dinamicamente na rede de tempo real efectuado pelo
servio RTcfg, que permite o armazenamento centralizado de todos os parmetros da rede e
a sua distribuio para um novo n que se conecte sem violao dos requisitos de tempo real.

6.3.4.4 API
RTnet disponibiliza um API para comunicao de tempo real, no topo da pilha UDP/IP de
tempo real. A manipulao de sockets semelhante aos sockets BSD, o que facilita o
desenvolvimento de aplicaes para quem j estiver familiarizado estes sockets.
Deste modo comum encontrar funes semelhantes s da libc para manipulao de sockets
BSD, sendo no caso geral o nome da funo precedido pelo prefixo rt_dev_, como por
exemplo (xenoami.org 2008a):

rt_dev_open rt_dev_socket rt_dev_close
rt_dev_ioctl rt_dev_read rt_dev_write
rt_dev_recvmsg rt_dev_recvfrom rt_dev_recv
rt_dev_sendmsg rt_dev_sendto rt_dev_send
rt_dev_bind rt_dev_connect rt_dev_listen
rt_dev_accept rt_dev_shutdown rt_dev_getsockopt
rt_dev_setsockopt rt_dev_getsockname rt_dev_getpeername
()




Bibliografia
rzn, Karl-Erik rzn (2004). Real time-systems course material, Lund University
http://www.control.lth.se/~kurstr/ [ltimo acesso em: 18 Jun 2008]

Grehan, R., R. Moote e I. Cyliax (1998). Real-Time Programming: A guide to 32-bit
embedded development, Addison-Wesley

Sistemas de tempo real
had
20 de abril de 2014 T06 29/29
R J. Bril, J.J. Lukkien, R.I. Davis, e A. Burns. (2006). Message response time analysis for
ideal controller area network (CAN) refuted. Proceedings 5
th
International Workshop on
Real-Time Networks (RTN06)
http://alexandria.tue.nl/extra1/wskrap/publichtml/200619.pdf,
[ltimo acesso em: 25 Jun 2008]

rtnet.org (2008). RTnet Documentation and examples. http://www.rtnet.org/,
[ltimo acesso em: 25 Jun 2008]

TTP Forum (2008). TTP arquitecture documentation,
http://www.ttagroup.org/technology/articles.htm
[ltimo acesso em: 25 Jun 2008]

xenoami.org (2008a). RTnet API, http://www.xenomai.org/index.php/RTnet:API
[ltimo acesso em: 26 Jun 2008]

xenoami.org (2008b). RTnet Installation & Programming,
http://www.xenomai.org/index.php/RTnet:Main, [ltimo acesso em: 26 Jun 2008]