• Nenhum resultado encontrado

em autômatos temporais tal como Kronos (DAWS et al., 1996) e HyTech (ALUR; HENZINGER; HO, 1996). Promela, por exemplo, é dotada de uma extensão de tempo real que fornece uma semântica para a especificação e a verificação de propriedades temporais (TRIPAKIS; COURCOU- BETIS, 1996). Uma outra ferramenta bastante utilizada para especificar e verificar sistemas de tempo real é UPPALL (LARSEN; PETERSON; YI, 1997). Por exemplo, num trabalho recente (HANSSEN; MADER; JANSEN, 2006), o protocolo RTnet, de tempo real baseado em Ethernet, foi especificado e suas propriedades temporais foram verificadas com UPPAAL.

Uma outra alternativa possível para especificar Sistemas de Tempo Real (ABADI; LAMPORT, 1994;LAMPORT; MELLIAR-SMITH, 2005) é a linguagem de especificação formal TLA+ (Tempo-

ral Logic of Actions) (LAMPORT, 2002), junto com o seu verificador de modelo associado TLC (Temporal Logic Checker) (YU; MANOLIOS; LAMPORT, 1999). Baseada na teoria dos conjuntos de Zermelo-Fraenkel e na lógica temporal (PNUELI, 1979), a linguagem TLA+ foi especial- mente concebida para expressar propriedades temporais de sistemas concorrentes e distribuídos (JOHNSON et al., 2004). A escolha de TLA+ para especificar e verificar DoRiS se deu pelas ra- zões principais seguintes:

i) TLA+ tem uma estrutura modular que permite um processo de escrita por incrementos sucessivos, de acordo com o grau de abstração ou de detalhe desejado;

ii) Uma especificação em TLA+ é bastante parecida com código de programas, e, portanto, oferece uma base sólida para a implementação de DoRiS;

iii) O verificador de modelo TLC permite verificar automaticamente a especificação, assim como as propriedades temporais a ela associadas;

iv) Tanto os documentos de definição da linguagem TLA+ como a ferramenta TLC e vários exemplos são disponíveis livremente na Internet (TLA+, 2008).

3.3 DORIS: O PROTOCOLO

Localizado nas camadas LLC e MAC do modelo OSI, entre as camadas de rede e física, o protocolo DoRiS atua como um filtro lógico, evitando as colisões inerentes à camada de con- trole de acesso ao meio do protocolo CSMA/CD (IEEE, 2001). DoRiS é concebido para dar

3.3 doris: O PROTOCOLO 26 suporte a sistemas híbridos, nos quais sensores industriais, atuadores e controladores comparti- lham a rede de comunicação com as demais aplicações com requisitos temporais não-críticos. Dispositivos industriais (micro-controladores, sensores, etc.) são chamados de “estações len- tas”, pois a velocidade de processamento de tais dispositivo é relativamente baixa em compa- ração com a dos micro-computadores, chamados de “estações rápidas”. Nas seções seguintes, o protocolo é detalhado.

3.3.1 Sistema, modelo e terminologia

O conjunto de estações (lentas e rápidas) interligadas num barramento Ethernet comparti- lhada constitui um segmento DoRiS. Embora vários segmentos DoRiS possam ser inter-conec- tados por comutadores ou roteadores, a especificação e verificação de DoRiS se restringe a um segmento isolado. Em tal segmento, cada estação executa um servidor DoRiS, que é res- ponsável pela execução das suas funcionalidades. Uma estação rápida pode hospedar tanto tarefas críticas como processos com requisitos temporais não-críticos. Para fins de clareza das notações, as primeiras serão simplesmente chamados de tarefas e os segundos, de processos. Os dois conjuntos, de tarefas e de processos, denotados respectivamente TaskSet e Pro Set, definem os dois anéis lógicos de um segmento DoRiS, nos quais um único bastão circula.

Mensagens enviadas pelas estações lentas são curtas, usualmente periódicas, e têm requisi- tos de tempo real críticos. Assume-se que tais mensagem, chamadas de “mensagens críticas”, têm um tamanho mínimo de 64 bytes e que, conseqüentemente, são transmitidas no barramento no tempo de transmissãoδ. Denota-se π o tempo de processamento, no pior caso, da estação

mais lenta do segmento DoRiS. Assume-se que δ ≪ π e que a recepção e o processamento

das mensagens são duas operações independentes que podem ser realizadas simultaneamente. A primeira suposição reflete a existência de estações lentas no segmento, enquanto a segunda corresponde à realidade dos dispositivos de hardware modernos dotadas de memórias locais e de capacidade de DMA (Direct Memory Access). A segunda suposição implica, notadamente, que duas ou mais mensagens críticas podem ser enviadas em seguida. Observa-se que se hou- ver somente estações lentas presentes no segmento DoRiS, a taxa máxima de utilização do barramento é de π+δδ . No entanto, se houver também estações rápidas, a fração da banda não utilizada pode ser aproveitada pelos processos. É desta constatação que surgiu a proposta de

3.3 doris: O PROTOCOLO 27

DoRiS.

Assim como os protocolos VTPE e TEMPRA (ver seção 2.3), DoRiS utiliza o modelo de comunicação publish-subscribe (DOLEJS; SMOLIK; HANZALEK, 2004), de acordo com o qual, quando uma aplicação quer enviar uma mensagem, ela utiliza o endereço Ethernet de comu- nicação um-para-todos padrão (FF:FF:FF:FF:FF:FF). Quando um servidor DoRiS recebe uma mensagem, ele determina, de acordo com a identidade do seu emissor, se há alguma apli- cação interessada naquela mensagem. Caso positivo, ele entrega a mensagem. Senão, ele a descarta. A princípio, as tarefas não precisam completar o processamento de todas as mensa- gens críticas. No entanto, para simplificar o modelo, assume-se aqui que todas as mensagens críticas são inteiramente processadas por todas as tarefas. Distinguem-se portanto as operações de recepção e de processamento de uma mensagem.

Em relação ao modelo temporal, assume-se um sistema distribuído síncrono. Isto significa que as operações efetuadas pelas estações podem ser sincronizadas umas com as outras. Esta suposição se baseia no esquema de divisão temporal de DoRiS, que, como será visto, tem pontos de sincronização regulares e previsíveis, que ocorrem dentro de uma janela de tempo curta comparada com o desvio dos relógios locais. Isto implica que os relógios locais das estações são sincronizados.

Por fim, assume-se que as estações podem falhar por crash-recovery, ou seja, parar qual- quer tipo de atividade (SCHLICHTING; SCHNEIDER, 1983), e voltar a funcionar normalmente depois de um tempo arbitrário. Mensagens enviadas podem eventualmente ser perdidas, po- rém, estações rápidas devem imperativamente perceber a interrupção associada à recepção de uma mensagem, mesmo que o conteúdo da mensagem seja perdido. Como será visto, este requisito é necessário para controlar a circulação do bastão entre os processos.

3.3.2 O esquema de controle de acesso ao meio

A comunicação num barramento DoRiS é temporalmente dividida em uma alternância de fases (rounds) de comunicação (C-Rd) e fases de configuração dos membros (M-Rd), assim como ilustrado na figura 3.1. Durante a fase de configuração, o algoritmo de controle da com- posição do segmento DoRiS é responsável por estabelecer uma visão única da composição do grupo de participantes do segmento DoRiS. Esta visão é compartilhada por todos os membros

3.3 doris: O PROTOCOLO 28

chips

ciclo

S

E

S

R

W

H

W

S

chip

Um ciclo de DoRiS (

nTask

∗ ∆

C

)

C-Rd

M-Rd

ciclo

chip

chip

Figura 3.1: O esquema de Divisão Temporal de DoRiS

deste segmento. O problema do estabelecimento de tal visão, também conhecido como o pro- blema de composição de grupos, são assuntos de vários trabalhos (CRISTIAN, 1988;CHANDRA; TOUEG, 1996;LAMPORT; MELLIAR-SMITH, 1998). No contexto desta dissertação, considera-se que os grupos de tarefas (TaskSet) e processos (Pro Set) são definidos em tempo de projeto e especifica-se somente a fase de comunicação do protocolo DoRiS. Denota-senTask enPro os cardinais destes dois conjuntos.

Usando TDMA, cada fase de comunicação (C-Rd) define um número arbitrário, porém fixo, de ciclos periódicos, os quais são subdivididos em exatamentenTask chips, assim como pode ser observado na figura 3.1. Um mapeamento dos naturais sobre o conjunto dos chips associa um inteiro positivo módulonTask a um chip. Este mapeamento define um contador, que é denotado hipCount. Cada chip é, por sua vez, dividido em duas janelas, críticas e não- críticas, denotadasWH eWS, e associadas, respectivamente, às comunicações de tempo real críticas e não-críticas. As tarefas só transmitem mensagens durante as janelasWH, enquanto os processos apenas utilizam WS para transmitir as suas. Os tamanhos destas duas janelas são, respectivamente, denotados por ∆He ∆S e o tamanho de um chip é definido por∆C =

3.3 doris: O PROTOCOLO 29 das mensagens, a janela WHé também subdividida em dois slots: o slot elementar (SE) e o

slot de reserva (SR). As mensagens transmitidas nos slotsSE e SR são mensagens críticas, chamadas, respectivamente, de mensagem elementar e de reserva. Uma vez por ciclo, cada tarefa envia uma mensagem elementar dentro deSE enquantoSR é utilizada para oferecer um mecanismo de reserva.

Uma propriedade fundamental de DoRiS é que todas as tarefas devem imperativamente enviar uma única mensagem elementar por ciclo, no seu respectivo chip. Desta forma, estas mensagens podem ser utilizadas para fins de detecção de falhas e de sincronização dos relógios locais.

Para permitir o aumento da taxa disponível para uma ou outra tarefa, é possível atribuir vários chips de um mesmo ciclo a uma mesma estação. No entanto, com o objetivo de facilitar a apresentação e a especificação de DoRiS, assume-se nesta apresentação, sem perda de gene- ralidade, que cada estação envia uma única mensagem elementar por ciclo. No entanto, esta suposição poderia ser relaxada, de acordo com o algoritmo utilizado na fase de configuração, alocando um número maior de chips por ciclo a cada estação.

O controle de acesso ao meio de DoRiS é organizado por um bastão circulante virtual, que circula nos anéis críticos e não-críticos, descritos na seção 3.3.1. O bastão circulante é dito virtual porque sua transmissão é associada a regras temporais e lógicas baseadas na observação da comunicação no barramento. O isolamento dos dois anéis de DoRiS é garantido pelo uso do mecanismo de TDMA. Em relação ao anel não-crítico, o bastão circula durante a janela WS a cada vez que uma interrupção é gerada pela placa de rede. Quando um processo não tem nenhuma mensagem a transmitir, o servidor envia uma mensagem de tamanho mínimo para passar o bastão circulante ao próximo processo do anel não-crítico.

Observa-se que numa fase inicial de concepção do protocolo DoRiS, pensou-se em utilizar a capacidade de sensoriamento do meio para organizar a transmissão do bastão utilizando o mecanismo TPR do protocolo Tempra, apresentado na seção 2.3. No entanto, em face da dificuldade de conseguir placas de rede que permitam o acesso ao estado do meio (livre ou ocupado), esta possibilidade foi descartada.

3.4 A ESPECIFICAÇÃO FORMAL DE DORIS 30