• Nenhum resultado encontrado

ESPECIFICAÇÃO, VERIFICAÇÃO E IMPLEMENTAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "ESPECIFICAÇÃO, VERIFICAÇÃO E IMPLEMENTAÇÃO"

Copied!
97
0
0

Texto

(1)

Motivação Protocolo Implementação

ESPECIFICAÇÃO, VERIFICAÇÃO EIMPLEMENTAÇÃO DE UM PROTOCOLO DE COMUNICAÇÃO DETERMINÍSTICA

BASEADO EM ETHERNET

Paul Regnier

Mestrado em Mecatrônica Departamento de Ciências da Computação

Instituto de Matemática - UFBA Apoio FAPESB - TIC 2630-2006 Orientador: George Lima (PhD)

(2)

Motivação Protocolo Implementação

ROTEIRO

1 MOTIVAÇÃO O problema

Ethernet e Tempo Real

2 PROTOCOLO

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

3 IMPLEMENTAÇÃO

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

(3)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

ROTEIRO

1 MOTIVAÇÃO

O problema

Ethernet e Tempo Real 2 Protocolo

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

3 Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

(4)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

MODELO

SISTEMA DISTRIBUÍDO

Sistema: Um conjunto de estações compartilhando um mesmo barramento de comunicação (grafo conexo).

Protocolo: mensagens, relógios (e/ou temporizadores) e processamento

Restrições: Não existe memória compartilhada, nem relógio global

(5)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

OBJETIVOS

COMUNICAÇÃO DETERMINÍSTICA

I Atender aosrequisitos temporaisdas aplicações

(Timeliness)

I Garantir aconfiabilidadeda comunicação (tolerância a

falhas).

COMUNICAÇÃO EFICIENTE

I Otimizar e flexibilizar o uso da banda

I Contemplar a diversidade dos dispositivos

(6)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

ROTEIRO

1 MOTIVAÇÃO

O problema

Ethernet e Tempo Real

2 Protocolo

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

3 Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

(7)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

CSMA/CD

CARRIERSENSEMULTIPLEACCESS WITHCOLLISIONDETECTION

MECANISMOS

Carrier Sense ⇒ Detecção do estado do meio

Jam ⇒ Detecção de colisão

(8)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

CSMA/CD

CARRIERSENSEMULTIPLEACCESS WITHCOLLISIONDETECTION

MECANISMOS

Carrier Sense ⇒ Detecção do estado do meio

Jam ⇒ Detecção de colisão

Estado do meio ∈ {livre, ocupado, jam}

AÇÕES DE UMA ESTAÇÃO EXECUTANDO OCSMA/CD

Se Meio = livre Então transmitir imediatamente

Se Meio = ocupado Então esperar a próxima interrupção de EOF e transmitir imediatamente Se Meio = jam Então entrar em estado de Back-Off

(9)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

ESPERA

⇒ SINCRONIZAÇÃO

⇒ COLISÃO

Espera

Est. C

Est. B

Back−Off

Transmissão

Est. A

Tempo

Colisão !

(10)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

Switched-Ethernet

VANTAGENS

• Canais de comunicação ponto-a-ponto, sem colisão

• Políticas de prioridades nas filas

PROBLEMAS

• Gerenciamento de filas

• Atrasos na switching fabric nem sempre determinísticos

(11)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

Switched-Ethernet

VANTAGENS

• Canais de comunicação ponto-a-ponto, sem colisão

• Políticas de prioridades nas filas

PROBLEMAS

• Gerenciamento de filas

• Atrasos na switching fabric nem sempre determinísticos

(12)

Motivação

Protocolo Implementação

O problema Ethernet e Tempo Real

ESGOTAMENTO DA MEMÓRIA TAMPÃO DO SWITCH

perdidas Transmissão Est. C Mensagens Fila cheia recebe Est. B para C Est. A para C de A e B

(13)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ROTEIRO

1 Motivação O problema

Ethernet e Tempo Real

2 PROTOCOLO

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

3 Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

(14)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM

TDMA

2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1

TIMEDIVISIONMULTIPLEACCESS

(TDMA)

• Intervalos periódicos de tempo

alocados a cada estação.

• Problemas: Sincronização dos relógios, desperdício

EXEMPLOS

(15)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM

TDMA

2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1

TIMEDIVISIONMULTIPLEACCESS

(TDMA)

• Intervalos periódicos de tempo

alocados a cada estação.

• Problemas: Sincronização dos relógios, desperdício

EXEMPLOS

(16)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM

TDMA

2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1

TIMEDIVISIONMULTIPLEACCESS

(TDMA)

• Intervalos periódicos de tempo

alocados a cada estação.

• Problemas: Sincronização dos relógios, desperdício

EXEMPLOS

(17)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM

TDMA

2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1

TIMEDIVISIONMULTIPLEACCESS

(TDMA)

• Intervalos periódicos de tempo

alocados a cada estação.

• Problemas: Sincronização dos relógios, desperdício

EXEMPLOS

(18)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM

TDMA

2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1 2 1 Time : Slot Time P1 P2 P3 P4 2 3 4 1

TIMEDIVISIONMULTIPLEACCESS

(TDMA)

• Intervalos periódicos de tempo

alocados a cada estação.

• Problemas: Sincronização dos relógios, desperdício

EXEMPLOS

(19)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM MESTRE

/

ESCRAVO

M A B D C E F M A B D C E F M A B D C E F MESTRE- ESCRAVO

• O “mestre” atribui os direitos de acesso ao meio

• Problemas: ponto de falhas, sobrecarga

EXEMPLOS

(20)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM MESTRE

/

ESCRAVO

M A B D C E F M A B D C E F M A B D C E F MESTRE- ESCRAVO

• O “mestre” atribui os direitos de acesso ao meio

• Problemas: ponto de falhas, sobrecarga

EXEMPLOS

(21)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM MESTRE

/

ESCRAVO

M A B D C E F M A B D C E F M A B D C E F MESTRE- ESCRAVO

• O “mestre” atribui os direitos de acesso ao meio

• Problemas: ponto de falhas, sobrecarga

EXEMPLOS

(22)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM DO

BASTÃO

CIRCULANTE

D A E F B (t < THT) C (t = THT) A E F B C D (t < THT) D A E F B C (t = THT) C D A E F B (t < THT) C D A E F B BASTÃO CIRCULANTE

• Bastão (explícito ou não)⇒

direito de acesso ao meio

• Problemas: Sobrecarga, perda do bastão, variabilidade

EXEMPLOS

Profinet, P-Net, RT-Net

(combinação de Bastão Temporal (TTP) e / ou controle

(23)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM DO

BASTÃO

CIRCULANTE

D A E F B (t < THT) C (t = THT) A E F B C D (t < THT) D A E F B C (t = THT) C D A E F B (t < THT) C D A E F B BASTÃO CIRCULANTE

• Bastão (explícito ou não)⇒

direito de acesso ao meio

• Problemas: Sobrecarga, perda do bastão, variabilidade

EXEMPLOS

Profinet, P-Net, RT-Net

(combinação de Bastão Temporal (TTP) e / ou controle

(24)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM DO

BASTÃO

CIRCULANTE

D A E F B (t < THT) C (t = THT) A E F B C D (t < THT) D A E F B C (t = THT) C D A E F B (t < THT) C D A E F B BASTÃO CIRCULANTE

• Bastão (explícito ou não)⇒

direito de acesso ao meio

• Problemas: Sobrecarga, perda do bastão, variabilidade

EXEMPLOS

Profinet, P-Net, RT-Net

(combinação de Bastão Temporal (TTP) e / ou controle

(25)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM DO

BASTÃO

CIRCULANTE

D A E F B (t < THT) C (t = THT) A E F B C D (t < THT) D A E F B C (t = THT) C D A E F B (t < THT) C D A E F B BASTÃO CIRCULANTE

• Bastão (explícito ou não)⇒

direito de acesso ao meio

• Problemas: Sobrecarga, perda do bastão, variabilidade

EXEMPLOS

Profinet, P-Net, RT-Net

(combinação de Bastão Temporal (TTP) e / ou controle

(26)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGEM DO

BASTÃO

CIRCULANTE

D A E F B (t < THT) C (t = THT) A E F B C D (t < THT) D A E F B C (t = THT) C D A E F B (t < THT) C D A E F B BASTÃO CIRCULANTE

• Bastão (explícito ou não)⇒

direito de acesso ao meio

• Problemas: Sobrecarga, perda do bastão, variabilidade

EXEMPLOS

Profinet, P-Net, RT-Net

(combinação de Bastão Temporal (TTP) e / ou controle

(27)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ABORDAGENS NÃO CONTEMPLADAS

1 Commodificaçõesdo Hardware (EtherCAT, PRI, ...)

2 Com garantias temporaisprobabilísticas(suavização do

(28)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DINÂMICAS DE PROCESSAMENTO LENTAS

/

RÁPIDAS

2 3 1 : Mensagens críticas : Meio ocupado Tempo : Processamento pelas estações lentas

PROPRIEDADE FUNDAMENTAL

Enquanto as estações lentas processam as mensagens críticas, as estações rápidas utilizam a banda com comunicação não crítica

(29)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ROTEIRO

1 Motivação O problema

Ethernet e Tempo Real

2 PROTOCOLO

Modelos de soluções

DoRiS - A Double Ring Service for RTS

Especificação formal em TLA+ 3 Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

(30)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- A DOUBLE

RING

SERVICE FOR

RTS

MODELO COMPUTACIONAL

• Cada estação hospeda um servidor DoRiS

• Conjuntos de tarefas e de processos representados por

instâncias únicas

• TaskSet = {T1,T2, . . . ,TnServ} e

ProcSet = {P1,P2, . . . ,PnServ}

• Estações lentas versus rápidas

• Tamanho das mensagens críticas (64B)tamanho

máximo das mensagens não críticas (1500B)

(31)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- ESTRUTURA TEMPORAL

(TDMA)

Volta

chips C-Rd M-Rd

ciclo ciclo

chip chip chip

Ciclo de DoRiS (nServ ∗ ∆C)

SE SR WH WS • Tempo dividido em rodadas: M-Rd e C-Rd • Ciclo: alternância de chips (∆C)

• Chip: janela crítica (WH)

e não crítica (WS)

• WH(2∆E): slot

elementar (SE) e de

(32)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

UM

chip DoRiS

(∆

E

)

Janela não-críticas Distância Slotde reserva Slotelementar ∆S ∆S m(T1) m(T7) m(P2) m(P5) m(P7)

(33)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- PROPRIEDADE FUNDAMENTAL

MENSAGENS ELEMENTARES

• Obrigatórias: cada servidor enviaumamensagem elementar em cada ciclo

⇒ pulso descentralizado com período ∆C

CONSEQÜÊNCIAS

Periodicidade ⇒DeterminismoeSincronismo

INFORMAÇÕES NAS MENSAGENS ELEMENTARES

• Flexibilidadedo anel crítico: mecanismo de reserva

(34)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- PROPRIEDADE FUNDAMENTAL

MENSAGENS ELEMENTARES

• Obrigatórias: cada servidor enviaumamensagem elementar em cada ciclo

⇒ pulso descentralizado com período ∆C

CONSEQÜÊNCIAS

Periodicidade ⇒DeterminismoeSincronismo

INFORMAÇÕES NAS MENSAGENS ELEMENTARES

• Flexibilidadedo anel crítico: mecanismo de reserva

(35)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- PROPRIEDADE FUNDAMENTAL

MENSAGENS ELEMENTARES

• Obrigatórias: cada servidor enviaumamensagem elementar em cada ciclo

⇒ pulso descentralizado com período ∆C

CONSEQÜÊNCIAS

Periodicidade ⇒DeterminismoeSincronismo

INFORMAÇÕES NAS MENSAGENS ELEMENTARES

• Flexibilidadedo anel crítico: mecanismo de reserva

(36)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- O

MECANISMO DE RESERVA

• Mensagens elementares carregam uma lista de reserva

• Cada servidor mantém um vetor de reserva

• Uma tarefa pode reservar todos os slots livres do próximo

ciclo.

• Sempre tem um slot livre no horizonte de uma tarefa

MECANISMO DE TOLERÂNCIA A FALHAS

Uma tarefa só pode enviar mais de uma reserva se ela recebeu as nServ mensagens elementares que precede o seu chip.

(37)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- O

MECANISMO DE RESERVA

• Mensagens elementares carregam uma lista de reserva

• Cada servidor mantém um vetor de reserva

• Uma tarefa pode reservar todos os slots livres do próximo

ciclo.

• Sempre tem um slot livre no horizonte de uma tarefa

MECANISMO DE TOLERÂNCIA A FALHAS

Uma tarefa só pode enviar mais de uma reserva se ela recebeu as nServ mensagens elementares que precede o seu chip.

(38)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- GERENCIAMENTO DINÂMICO DO GRUPO DE

PROCESSOS

• Mensagens elementares carregam um bit 0 ou 1

• Cada servidor mantém a lista dos processos

• Na recepção de uma mensagem elementar, cada servidor

atualiza a composição do grupo

MECANISMO DE TOLERÂNCIA A FALHAS

• Em caso de falhas de omissão na recepção de uma mensagem elementar, um servidor perde o direito de enviar mensagens não-críticas

• Depois de uma janela WS vazia, todos os servidores

(39)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

DoRiS

- GERENCIAMENTO DINÂMICO DO GRUPO DE

PROCESSOS

• Mensagens elementares carregam um bit 0 ou 1

• Cada servidor mantém a lista dos processos

• Na recepção de uma mensagem elementar, cada servidor

atualiza a composição do grupo

MECANISMO DE TOLERÂNCIA A FALHAS

• Em caso de falhas de omissão na recepção de uma

mensagem elementar, um servidor perde o direito de enviar mensagens não-críticas

• Depois de uma janela WS vazia, todos os servidores

(40)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ROTEIRO

1 Motivação O problema

Ethernet e Tempo Real

2 PROTOCOLO

Modelos de soluções

DoRiS - A Double Ring Service for RTS

Especificação formal em TLA+

3 Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

(41)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

LÓGICA

TEMPORAL DE

AÇÕES

-

TLA+

Elementos TLA+

LINGUAGEM DE ESPECIFICAÇÃO FORMAL

• Teoria dos conjuntos e lógica temporal

• Propriedades temporais de sistemas concorrentes e

distribuídos

• TLC: verificador automático de modelos

VANTAGENS

• Estrutura modular ⇒ escrita por incrementos sucessivos

(42)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ESPECIFICAÇÃO DE

DoRiS

O tempo: mais uma variável ⇒ Número de estados aumenta

MODELO TEMPORAL

• Representação inteira ⇔ Incrementos discretos

• Temporizadores sem desvios nem atrasos ⇔ relógio global

FÓRMULA PRINCIPAL

Spec =∆ Init ∧2[Next ∨ Tick]vars∧ Liveness • Init é o conjunto dos estados iniciais

• 2[Next ∨ Tick]vars é a relação de sucessão

(43)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ESPECIFICAÇÃO DE

DoRiS

O tempo: mais uma variável ⇒ Número de estados aumenta

MODELO TEMPORAL

• Representação inteira ⇔ Incrementos discretos

• Temporizadores sem desvios nem atrasos ⇔ relógio global

FÓRMULA PRINCIPAL

Spec =∆ Init ∧2[Next ∨ Tick]vars∧ Liveness

• Init é o conjunto dos estados iniciais

• 2[Next ∨ Tick]vars é a relação de sucessão

(44)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ESPECIFICAÇÃO DE

DoRiS

AS AÇÕES PRINCIPAIS

Next =∆ ∨ ∃ t ∈ TaskSet : SendElem(t) ∨ SendRese(t)

∨ ∃ p ∈ ProcSet(Shared .proc) : SendSoft(p) ∨ ∃ msg ∈ Shared .medium : Receive(msg)

Tick =∆ NextTick ∨ NextChip

• SendElem , SendRese e SendSoft : as 3 ações de envio de mensagens (elementar, de reserva e

não-crítica)

• Receive : ação de recepção de um mensagem

(45)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

ESPECIFICAÇÃO DE

DoRiS

AS AÇÕES PRINCIPAIS

Next =∆ ∨ ∃ t ∈ TaskSet : SendElem(t) ∨ SendRese(t)

∨ ∃ p ∈ ProcSet(Shared .proc) : SendSoft(p) ∨ ∃ msg ∈ Shared .medium : Receive(msg)

Tick =∆ NextTick ∨ NextChip

• SendElem , SendRese e SendSoft : as 3 ações

de envio de mensagens (elementar, de reserva e não-crítica)

• Receive : ação de recepção de um mensagem

(46)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

PROPRIEDADES TEMPORAIS

(

INÍCIO)

AUSÊNCIA DE COLISÃO

Send (q) =∆

∨ ∧ q ∈ TaskSet

∧ (ENABLEDSendElem(q) ∨ENABLEDSendRese(q))

∨ ∧ q ∈ ProcSet(Shared .proc) ∧ENABLEDSendSoft(q)

CollisionAvoidance =∆

∀ p, q ∈ TaskSet ∪ ProcSet(Proc) :

2(ENABLED(Send (p) ∧ Send (q)) ⇒ (p = q))

NoCollisionAvoidance =∆

∃ p, q ∈ TaskSet ∪ ProcSet(Proc) :

(47)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

PROPRIEDADES TEMPORAIS

(

CONT.)

CORREÇÃO DO ANEL CRÍTICO

HardRingCorrectness =∆

∧ ∀ t ∈ TaskSet :

∧2(Len(TaskState[taskId(t)].msg) ≤ 3)

∧23(ENABLEDSendElem(t)) ∧2(ENABLEDNextChip

(48)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

PROPRIEDADES TEMPORAIS

(

CONT.)

CORREÇÃO DO MECANISMO DE RESERVA

ReservationSafety =∆

2 ∀ chip, j ∈ Task : ∧ENABLEDSendRese(T [j])

∧ Shared .chipCount = chip ⇒ ∧ TaskState[j].res[chip] = j

∧ ∀ i ∈ Task \ {j} :

(49)

Motivação

Protocolo

Implementação

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

PROPRIEDADES TEMPORAIS

(

FIM)

JUSTIÇA NO ANEL NÃO-CRÍTICO

SoftRingFairness =∆ ∧ ∀ i ∈ Proc : 2(i ∈ Shared.proc ⇒ (ProcState[i].list 6= hi ⇒ 3(i = ProcState[i].token))) ∧23(∀ i ∈ Proc \ Failed :

(50)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

ROTEIRO

1 Motivação O problema

Ethernet e Tempo Real 2 Protocolo

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

3 IMPLEMENTAÇÃO

Sistema Operacional de Tempo Real

(51)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

MOTIVAÇÃO PARA O USO DE

L

INUX

• SO de código livre e aberto com boa aceitação nos

ambientes de pesquisa acadêmica

• Grande variedade de aplicações (multimídia, banco de

dados, sistemas embarcadas...)

LINUX NÃO É DETERMINÍSTICO

Resolução temporal, escalonamento (resolução do tick), interrupção

AVALIAÇÃO DE3PLATAFORMAS

• LINUXStd: Linux - 2.6.23.9

• LINUXPrt: Linux - 2.6.23.9 -PREEMPT-RT (rt12) • LINUXXen: Xenomai- 2.4-rc5 - Linux 2.6.19.7

(52)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

MOTIVAÇÃO PARA O USO DE

L

INUX

• SO de código livre e aberto com boa aceitação nos

ambientes de pesquisa acadêmica

• Grande variedade de aplicações (multimídia, banco de

dados, sistemas embarcadas...)

LINUX NÃO É DETERMINÍSTICO

Resolução temporal, escalonamento (resolução do tick), interrupção

AVALIAÇÃO DE3PLATAFORMAS

• LINUXStd: Linux - 2.6.23.9

• LINUXPrt: Linux - 2.6.23.9 -PREEMPT-RT (rt12) • LINUXXen: Xenomai- 2.4-rc5 - Linux 2.6.19.7

(53)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

MOTIVAÇÃO PARA O USO DE

L

INUX

• SO de código livre e aberto com boa aceitação nos

ambientes de pesquisa acadêmica

• Grande variedade de aplicações (multimídia, banco de

dados, sistemas embarcadas...)

LINUX NÃO É DETERMINÍSTICO

Resolução temporal, escalonamento (resolução do tick), interrupção

AVALIAÇÃO DE3PLATAFORMAS

• LINUXStd: Linux - 2.6.23.9

• LINUXPrt: Linux - 2.6.23.9 -PREEMPT-RT (rt12)

(54)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIAS DE INTERRUPÇÃO E DE ATIVAÇÃO

Processos placa de rede Eventos IRQs kernel Modo usuário Modo TEth tempo t1 NA ESTAÇÃO DE MEDIÇÃOEM

• t1: chegada de um pacote enviado por ED⇒ TEth

• t2: TEth escreve na Porta Paralela ⇒ TPP • t3: TPP escalona τ ⇒ τ

(55)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIAS DE INTERRUPÇÃO E DE ATIVAÇÃO

Latirq placa de rede Eventos IRQs kernel Modo usuário Modo TEth TPP tempo Processos t1 t2 porta paralela NA ESTAÇÃO DE MEDIÇÃOEM

• t1: chegada de um pacote enviado por ED⇒ TEth

• t2: TEth escreve na Porta Paralela ⇒ TPP

(56)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIAS DE INTERRUPÇÃO E DE ATIVAÇÃO

Latativ placa de rede Eventos IRQs kernel Modo usuário Modo TEth TPP tempo Processos t1 t2 t3 porta paralela τ TPP Latirq NA ESTAÇÃO DE MEDIÇÃOEM

• t1: chegada de um pacote enviado por ED⇒ TEth

• t2: TEth escreve na Porta Paralela ⇒ TPP

(57)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

METODOLOGIA EXPERIMENTAL

0 1 EM ED EC Porta Paralela DISPOSITIVO

• Estação demediçãoEM: tarefa de tempo real τ

• Estação dedisparoED: envia pacotes Ethernet com uma

freqüência fixa de 20Hz para a estação EM

• Estação decargaEC: provoca carga de interrupção na

(58)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

ESTRESSES DO

SO

DA ESTAÇÃO

E

M

CARGA DO PROCESSADOR E DEE/S

while "true"; do

dd if=/dev/hda2 of=/dev/null bs=1M count=1000 find / -name ”*.c” | xargs egrep include tar -cjf /tmp/root.tbz2 /usr/src/linux-xenomai cd /usr/src/linux-preempt; make clean; make done

ESTRESSES DE INTERRUPÇÕES

Fluxo de pacotes de 64 bytes na freqüência de 200kHz entre EM (servidor) e EC (cliente) (100.000 interrupções por

(59)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

ESTRESSES DO

SO

DA ESTAÇÃO

E

M

CARGA DO PROCESSADOR E DEE/S

while "true"; do

dd if=/dev/hda2 of=/dev/null bs=1M count=1000 find / -name ”*.c” | xargs egrep include tar -cjf /tmp/root.tbz2 /usr/src/linux-xenomai cd /usr/src/linux-preempt; make clean; make done

ESTRESSES DE INTERRUPÇÕES

Fluxo de pacotes de 64 bytes na freqüência de 200kHz entre EM (servidor) e EC (cliente) (100.000 interrupções por

(60)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIA DE INTERRUPÇÃO

(INÍCIO)

0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxStd- Sem carga

VM: 8.9, DP: 0.3, Min: 8.7, Max: 18.4 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxStd- Com carga

(61)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIA DE INTERRUPÇÃO

(CONT.)

0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxPrt- Sem carga

VM: 21.5, DP: 1.7, Min: 20.3, Max: 45.1 0.0 50.0 100.0 150.0 200.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxPrt- Com carga

(62)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIA DE INTERRUPÇÃO

LINUXPrtOPÇÃO IRQF NODELAY

0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxPrt- Sem carga

VM: 8.9, DP: 0.2, Min: 8.8, Max: 16.7 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxPrt- Com carga

(63)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIA DE INTERRUPÇÃO

(FIM)

0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxXen- Sem carga

VM: 9.0, DP: 0.1, Min: 8.8, Max: 11.1 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxXen- Com carga

(64)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIA DE ATIVAÇÃO

(INÍCIO)

0.0 5.0 10.0 15.0 20.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxStd- Sem carga

VM: 4.6, DP: 0.4, Min: 4.4, Max: 16.2 0.0 50.0 100.0 150.0 200.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxStd- Com carga

(65)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIA DE ATIVAÇÃO

(CONT.)

0.0 5.0 10.0 15.0 20.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxPrt- Sem carga

VM: 2.1, DP: 0.2, Min: 1.2, Max: 9.4 0.0 5.0 10.0 15.0 20.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxPrt- Com carga

(66)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LATÊNCIA DE ATIVAÇÃO

(FIM)

0.0 5.0 10.0 15.0 20.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxXen- Sem carga

VM: 2.1, DP: 0.5, Min: 1.8, Max: 8.4 0.0 5.0 10.0 15.0 20.0 0 10 20 30 40 50 60 Latência em µ s Tempo de observação em s

LinuxXen- Com carga

(67)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

ROTEIRO

1 Motivação O problema

Ethernet e Tempo Real 2 Protocolo

Modelos de soluções

DoRiS - A Double Ring Service for RTS Especificação formal em TLA+

3 IMPLEMENTAÇÃO

Sistema Operacional de Tempo Real

(68)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

XENOMAI

:

INTERFACE

RTDM (DE

KISZKA)

Modos usuário e kernel

RTDM

Controladores de dispositivos HAL

Aplicações XENOMAI

• Real Time Driver Model

• Hardware Abstraction Layer

ADEOS

Adaptative Domain Environment for Operating Systems

(69)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

LOCALIZAÇÃO DO

RTNET

Geren. RTDM Controladores de dispositivos Aplicações HAL RTnet

REALTIME NET

• Gerenciamento de

memória (rtskb)

• Emissão e recepção de

mensagens por tarefas

• ARP estático,

mecanismos de fragmentação

(70)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

ESTRUTURA EM CAMADA DO

RT

NET

Virtual NIC Pilha de rede Linux

CONFIG RTDM Gerenciamento Aplicações de tempo real RTMAC Aplicações de melhor esforço

Disciplinas (TDMA, NoMAC, DoRiS)

NIC & Hardware Núcleo RTnet (stack manager, rtskb), RTcap

Controladores de dispositivos, Loopback, HAL UDP/IP, ICMP, ARP, IP, RTcfg

(71)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

SINCRONIZAÇÃO DO ANEL CRÍTICO

Estrutura temporal

PROBLEMA:DETERMINAR O INSTANTE DE INÍCIO DOSchips

• Na emissão: latências de interrupção, rotina de emissão de mensagens e placa de rede

• No meio: latências de transmissão e de propagação

• Na recepção: latências na placa de rede (DMA) e de interrupção

SUPOSIÇÕES

• Diferenças dos tempos de propagação desprezíveis

• Diferenças entre as latências nas estações recebedores

(72)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

MEDIDA DE

E Estrutura temporal

mB B C t0 t1 t2 t3 A mA ∆ ∆E ∆E mA SINCRONIZAÇÃO • Propriedades da comunicação um-para-todos • B e C recebem mAno mesmo instante t1 • Na recepção de mB, C deduz ∆E = (t3− t1) − ∆

(73)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

RESULTADOS EXPERIMENTAIS

• 3 computadores (nServ = 3) e ∆C =500µs

• Pentium IV de 2.4 Ghz e 512 MB de memória

• Rede switched-Ethernet 100Mbps (comprimentos ' 5m)

MEDIDAS DE∆E

Média de 25µs com desvios máximos de 3µs (latências de interrupção - ' 10µs e no switch)

TAXAS DE TRANSFERÊNCIA

• 1Mbps para a comunicação crítica (determinística)

(74)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

RESULTADOS EXPERIMENTAIS

• 3 computadores (nServ = 3) e ∆C =500µs

• Pentium IV de 2.4 Ghz e 512 MB de memória

• Rede switched-Ethernet 100Mbps (comprimentos ' 5m)

MEDIDAS DE∆E

Média de 25µs com desvios máximos de 3µs (latências de interrupção - ' 10µs e no switch)

TAXAS DE TRANSFERÊNCIA

• 1Mbps para a comunicação crítica (determinística)

(75)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

RESULTADOS EXPERIMENTAIS

• 3 computadores (nServ = 3) e ∆C =500µs

• Pentium IV de 2.4 Ghz e 512 MB de memória

• Rede switched-Ethernet 100Mbps (comprimentos ' 5m)

MEDIDAS DE∆E

Média de 25µs com desvios máximos de 3µs (latências de interrupção - ' 10µs e no switch)

TAXAS DE TRANSFERÊNCIA

• 1Mbps para a comunicação crítica (determinística)

(76)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

COMPARAÇÃO

NO

MAC

VERSUS

DO

RIS

SEM COMUNICAÇÃO NÃO-CRÍTICA

Comunicação crítica de período de 500µs⇒desvios máximos

de 3µs em ambos os caso

COM COMUNICAÇÃO NÃO-CRÍTICA

• NoMAC⇒variabilidade de aproximadamente 160µs

(77)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

COMPARAÇÃO

NO

MAC

VERSUS

DO

RIS

SEM COMUNICAÇÃO NÃO-CRÍTICA

Comunicação crítica de período de 500µs⇒desvios máximos

de 3µs em ambos os caso

COM COMUNICAÇÃO NÃO-CRÍTICA

• NoMAC⇒variabilidade de aproximadamente 160µs

(78)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

CONCLUSÃO

UM MESTRADO: 3FACETAS

1 Concepção de um protocolo de comunicação de tempo

real

2 Especificação e verificação formal em TLA+

(79)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

PERSPECTIVAS

1 Acrescentar a implementação de DoRiS com o

mecanismo de reserva

2 Realizar o estudo experimental de DoRiS com cenários de

comunicação de redes industriais (falhas)

3 Gerenciamento dinâmico da composição e reconfiguração

do grupo de servidor

4 DoRiS: distribuído, descentralizado e determinístico,

compartilha um único barramento, tolerante às falhas de

(80)

Motivação Protocolo

Implementação

Sistema Operacional de Tempo Real DoRiS na camada RTnet do Xenomai

PUBLICAÇÕES

P. Regnier, G. M. Lima

Deterministic integration of hard and soft real-time communication over shared-Ethernet

Proc. of Workshop of Tempo Real, 2006

P. Regnier, G. M. Lima, L. P. Barreto

Avaliação do determinismo temporal no tratamento de interrupções em plataformas de tempo real Linux

(81)

Apêndice Elementos de bibliografia Especificação formal

ROTEIRO

4 APÊNDICE Elementos de bibliografia Especificação formal

(82)

Apêndice Elementos de bibliografia Especificação formal

ELEMENTOS DE BIBLIOGRAFIA

I

L. Lamport

Specifying Systems: The TLA+ language and tools for hardware and software engineers

Addison Wesley, 2002

D. P. Bovet, M. Cesati

Understanding the Linux Kernel

O’Reilly (3rd), 2005

J. Corbet and A. Rubini and G. Kroah-Hartman Linux Device Drivers

(83)

Apêndice Elementos de bibliografia Especificação formal

ELEMENTOS DE BIBLIOGRAFIA

II

J.-D. Decotignie

Ethernet-based real-time and industrial communications

Proc. IEEE (Special issue on industrial communication systems), 93(6):1102-1117, 2005

F. B. Carreiro, J. A. Fonseca and P. Pedreiras Virtual Token-Passing Ethernet - VTPE

Proc. FeT2003 5th IFAC Int. Conf. on Fieldbus Systems and their Applications, 2003

F. B. Carreiro, J. A. Fonseca and P. Pedreiras Virtual Token-Passing Ethernet - VTPE

Proc. FeT2003 5th IFAC Int. Conf. on Fieldbus Systems and their Applications, 2003

(84)

Apêndice Elementos de bibliografia Especificação formal

ELEMENTOS DE BIBLIOGRAFIA

III

J. Kiszka and B. Wagner and Y. Zhang and J. Broenink RTnet-A Flexible Hard Real-Time Networking Framework

Proc. of the 10th IEEE International Conference on Emerging Technologies and Factory Automation, 2005

I P. Gerum, K. Yaghmour et al.

Xenomai

(85)

Apêndice Elementos de bibliografia Especificação formal

ROTEIRO

4 APÊNDICE Elementos de bibliografia Especificação formal

(86)

Apêndice Elementos de bibliografia Especificação formal

LÓGICA

TEMPORAL DE

AÇÕES

Volta

Em TLA+, um sistema é representado por um conjunto de constantes e variáveis

DEFINIÇÕES

Estado =∆ Atribuição de valores as variáveis

Comportamento =∆ Seqüência (infinita) de estados

Predicado =∆ Fórmula que contém variáveis de

um estado só

Passo P : i → f =∆ seqüência de dois estados

conse-cutivos i e f

Transição =∆ Fórmula com valores de variáveis

dos estados i e f

(87)

Apêndice Elementos de bibliografia Especificação formal

ELEMENTOS DA LINGUAGEM

TLA+ (INÍCIO)

Volta

DEFINIÇÕES

• O operador0 (linha) define o estado no qual a variável v é considerada

v: valor de v no estadoi v0: valor de v no estadof EXEMPLOS

• Seja P : i → f um passo tal que v = 0 em i e v = 1 em f

• [v0− v ] é uma função de transição que vale 1 em P

⇒ A função de transição [v0 =v + 1] é uma ação verdadeira

(88)

Apêndice Elementos de bibliografia Especificação formal

ELEMENTOS DA LINGUAGEM

TLA+ (FIM)

Volta

OPERADOR2

Num comportamento Σ, uma ação A é verdadeira, ou seja,2[A]vars

⇔ ∀P : i → f de Σ que altera

as variáveis vars, A é ver-dadeira em P

RELAÇÃO DE SUCESSÃO

A relação de sucessão associada a um passo P : i → f é o conjunto das ações que são definidas sobre P.

(89)

Apêndice Elementos de bibliografia Especificação formal

ENVIO DE MENSAGENS ELEMENTARES

Volta

SendElem(t) ∆ = ∧ Shared.medium= {} ∧ Shared.chipTimer= 0 ∧ let i ∆ = taskId (t) flag ∆

= if ProcState[i ].list6= hi then 1 else 0 in ∧ Shared.chipCount= i

∧ let resSet ∆

= reservation(i ) in ∧ Shared′= [Shared except

!.macTimer= delta,

!.medium= {[id 7→ i,type 7→ “hard”,

res7→ resSet,procFlag7→ flag]}] ∧ TaskState′= [TaskState except

![i ].res= [j ∈ Task 7→ if j ∈ resSet then i else @[j ]], ![i ].cons= 1]

∧ ProcState′= [ProcState except

![i ].token= if flag = 0 then − 1 else @] ∧ History′= [History except !.elem= @ + 1]

(90)

Apêndice Elementos de bibliografia Especificação formal

ENVIO DE MENSAGENS DE RESERVA

Volta

SendRese(t) ∆ = ∧ Shared.medium= {} ∧ Shared.chipTimer= delta ∧ let i ∆ = taskId (t)

in ∧ TaskState[i ].res[Shared.chipCount] = i ∧ Shared′= [Shared except

!.macTimer= delta,

!.medium= {[id 7→ i,type7→ “hard”,res7→ { − 1}]}] ∧ TaskState′= [j ∈ Task 7→ [TaskState[j ] except

!.res[Shared.chipCount] = − 1]] ∧ History′= [History except !.rese= @ + 1]

∧ unchanged ProcState

(91)

Apêndice Elementos de bibliografia Especificação formal

ENVIO DE MENSAGENS NÃO-

CRÍTICAS Volta

SendSoft(p) ∆

=

∧ 2 ∗ delta ≤ Shared .chipTimer ∧ Shared .chipTimer ≤ deltaChip ∧ Shared .medium = {} ∧ let i ∆ = procId (p, Proc) lenTX ∆ = lenMsg(i ) d ∆

= Shared .chipTimer + lenTX NoMsg ∆

= i ∈ Failed ∨ d > deltaChip in ∧ i = ProcState[i ].token

∧ Shared′= [Shared except

!.macTimer = if NoMsg then Infinity else lenTX ,

!.medium = if NoMsg then @ else {[id 7→ i , type 7→ “soft”]}] ∧ ProcState′= [ProcState except

![i ].token = if NoMsg then @ else next(i , Shared .proc), ![i ].list = if d > deltaChip ∨ @ = hi then @ else Tail (@), ![i ].count = if NoMsg then @ else @ + 1]

∧ unchanged hTaskState, Historyi

(92)

Apêndice Elementos de bibliografia Especificação formal

RECEPÇÃO DE MENSAGENS NÃO-CRÍTICAS

Volta

Receive(m) ∆

=

∧ Shared.macTimer= 0

∧ case m.type= “hard” → RecvHard (m) 2 m.type = “soft” → RecvSoft(m) RecvSoft(m) ∆

= ∧ let lastSoft ∆

= ∧ 2 ∗ delta ≤ Shared.chipTimer ∧ Shared.chipTimer≤ deltaChip ∧ ∀ j ∈ Proc : ProcState[j ].token= − 1 in Shared= [Shared except

!.medium= {},

!.macTimer= if lastSoft then Infinity else @, !.proc= if lastSoft then {} else @]

∧ ProcState′ = [j ∈ (Proc \ Shared.proc) ∪ {m.id} 7→ ProcState[j ]] @@

[j ∈ Shared.proc\ {m.id} 7→ [ProcState[j ] except !.token = next(@,Shared.proc),

!.count= @ + 1]] ∧ unchanged hTaskState,Historyi

(93)

Apêndice Elementos de bibliografia Especificação formal

RECEPÇÃO DE MENSAGENS CRÍTICAS

Volta

RecvHard(m) ∆

=

∧ case m.res6= { − 1} ∧ m.procFlag= 1

→ ∧ Shared′= [Shared except !.medium= {},

!.proc= @ ∪ {m.id}] ∧ unchanged ProcState

2 m.res6= { − 1} ∧ m.procFlag= 0

→ ∧ Shared′= [Shared except !.medium= {},

!.proc= @ \ {m.id}] ∧ ProcState′=

[i ∈ (Proc \ Shared.proc) ∪ NoRecvSet(m) 7→ ProcState[i ]] @@ [i ∈ Shared.proc\ NoRecvSet(m) 7→ [ProcState[i ] except

!.token= if m.id= ProcState[i ].token thennext(m.id,Shared.proc) else @]]

2 m.res= { − 1}

→ ∧ Shared′= [Shared except !.medium= {}]

∧ unchanged ProcState

(94)

Apêndice Elementos de bibliografia Especificação formal

RECEPÇÃO DE MENSAGENS CRÍTICAS

(FIM)

Volta

∧ TaskState′=

[i ∈ NoRecvSet(m) 7→ TaskState[i ]] @@

[i ∈ Task \ NoRecvSet(m) 7→ [TaskState[i ] except !.msg= Append (@,m),

!.execTimer= if Len(TaskState[i ].msg) = 0 then pi else @, !.cons= if m.res6= { − 1} then @ + 1 else @,

!.res= if m.res = { − 1}

then[j ∈ Task 7→ if j = m.id then − 1 else @[j ]] else [j ∈ Task 7→ if j ∈ m.res then m.id else @[j ]]]] ∧ unchanged History

NoRecvSet(m) = if Shared.chipCount∈ {2,4} then {m.id,3} else {m.id}

(95)

Apêndice Elementos de bibliografia Especificação formal

PASSAGEM DO TEMPO

Volta

NextTick ∆

=

letnoRese = ∧ Shared.medium= {} ∧ Shared.chipTimer= delta

∧ ∀ i ∈ Task : TaskState[i ].res[Shared.chipCount] 6= i noSoft ∆

= ∧ 2 ∗ delta ≤ Shared.chipTimer ∧ Shared.chipTimer≤ deltaChip ∧ Shared.medium= {}

∧ ∀ j ∈ Proc : ProcState[j ].token= − 1 tmp ∆

= min({TaskState[i ].execTimer: i ∈ Task } ∪ {deltaChip − Shared.chipTimer}) d = case noRese → min({delta,∆ tmp})

2 noSoft → min({tmp})

2 other → min({Shared.macTimer,tmp})

(96)

Apêndice Elementos de bibliografia Especificação formal

PASSAGEM DO TEMPO

(FIM)

Volta

in ∧ d > 0

∧ Shared′= [Shared except

!.chipTimer = @ + d ,

!.macTimer = case noRese → @ 2 noSoft → Infinity 2 @ = Infinity → Infinity 2 other → @ − d ] ∧ TaskState′= [i ∈ Task 7→ [TaskState[i ] except

!.msg = if TaskState[i ].execTimer − d = 0 then Tail (@) else @, !.execTimer = if @ − d = 0

then ifLen(TaskState[i ].msg) > 1 thenpi

else Infinity

else if@ = Infinity then @ else @ − d ]] ∧ unchanged hProcState, Historyi

(97)

Apêndice Elementos de bibliografia Especificação formal

TEMPO CIRCULAR

Volta

NextChip ∆

=

∧ Shared .medium = {} ∧ Shared .chipTimer = deltaChip ∧ let Overflow ∆

= ∃ j ∈ Shared .proc : Len(ProcState[j ].list) > 14 TimeCircle ∆

= Shared .cycleCount = horiz NextCycle ∆

= Shared .chipCount = nServ in ∧ Shared′= [Shared except !.macTimer = 0,

!.chipCount = (@ % nServ ) + 1,

!.chipTimer = if Overflow then − 1 else 0, !.cycleCount = if TimeCircle then 1

else ifNextCycle then@ + 1 else @] ∧ ProcState′= [j ∈ (Proc \ Shared .proc) 7→ ProcState[j ]] @@

[j ∈ Shared .proc 7→ [ProcState[j ] except !.count = 0, !.token = if ProcState[j ].count = 0 then (@ % nServ ) + 1 else @, !.list = if NextCycle then @ ◦ list(j , Shared .cycleCount) else @]] ∧ if NextCycle then History′= [elem 7→ 0, rese 7→ 0]

else unchangedHistory ∧ unchanged TaskState

Referências

Documentos relacionados

No Estado do Pará as seguintes potencialidades são observadas a partir do processo de descentralização da gestão florestal: i desenvolvimento da política florestal estadual; ii

O processo produtivo tem sido necessário para a economia tendo em vista que o consumo é uma necessidade dentre todos os segmentos sociais. Para que essa

32 Figura IV-20 Visão ao longo do tempo (dias) das três variáveis observadas (lado esquerdo) – em t/h – e das três variáveis latentes (lado direito), com foco no período

Tendo este fator em vista as análises e os conhecimentos em usabilidade, ergonomia interface e sobre as novos pensamentos de desenvolvimento web para mobile como, Mobile first e

A etapa 1, de revisão, busca o reconhecimento de elementos e estruturas já estabelecidas; a etapa 2, promove a seleção de obras de arquitetura que permitam

Perhaps the most fascinating aspect of Calunga grammar is its African lexicon, which is drawn mostly from Kimbundu, Umbundu, and Kikongo (to a lesser extent). Interestingly,

Concluiu-se que: a massa especifica unitaria (real) do chuchu, batata e cenoura com teores de agua de 89,84%, 81,93% e 92,48% b.u., respectivamente, foram de 1007;1073 e 1006 kg.m°;

A formação do pensamento é algo muito importante para a compreensão da formação humana como um elemento contínuo e para o desenvolvimento do pensamento crítico e reflexivo