Upload
lamtram
View
218
Download
0
Embed Size (px)
Citation preview
MotivaçãoProtocolo
Implementação
ESPECIFICAÇÃO, VERIFICAÇÃO E IMPLEMENTAÇÃODE UM PROTOCOLO DE COMUNICAÇÃO DETERMINÍSTICA
BASEADO EM ETHERNET
Paul Regnier
Mestrado em MecatrônicaDepartamento de Ciências da Computação
Instituto de Matemática - UFBA
Apoio FAPESB - TIC 2630-2006
Orientador: George Lima (PhD)
Defesa de dissertação
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
ROTEIRO
1 MOTIVAÇÃOO problemaEthernet e Tempo Real
2 PROTOCOLOModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 IMPLEMENTAÇÃOSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
ROTEIRO
1 MOTIVAÇÃOO problemaEthernet e Tempo Real
2 ProtocoloModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 ImplementaçãoSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
MODELO
SISTEMA DISTRIBUÍDO
Sistema: Um conjunto de estações compartilhando ummesmo barramento de comunicação (grafo conexo).Protocolo: mensagens, relógios (e/ou temporizadores) eprocessamentoRestrições: Não existe memória compartilhada, nemrelógio global
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
OBJETIVOS
COMUNICAÇÃO DETERMINÍSTICA
I Atender aos requisitos temporais das aplicações(Timeliness)
I Garantir a confiabilidade da comunicação (tolerância afalhas).
COMUNICAÇÃO EFICIENTE
I Otimizar e flexibilizar o uso da bandaI Contemplar a diversidade dos dispositivosI Permitir a reconfiguração do sistema
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
ROTEIRO
1 MOTIVAÇÃOO problemaEthernet e Tempo Real
2 ProtocoloModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 ImplementaçãoSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
CSMA/CDCARRIER SENSE MULTIPLE ACCESS WITH COLLISION DETECTION
MECANISMOS
Carrier Sense ⇒ Detecção do estado do meioJam ⇒ Detecção de colisão
Estado do meio ∈ {livre, ocupado, jam}
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
CSMA/CDCARRIER SENSE MULTIPLE ACCESS WITH COLLISION DETECTION
MECANISMOS
Carrier Sense ⇒ Detecção do estado do meioJam ⇒ Detecção de colisão
Estado do meio ∈ {livre, ocupado, jam}
AÇÕES DE UMA ESTAÇÃO EXECUTANDO O CSMA/CDSe Meio = livre Então transmitir imediatamenteSe Meio = ocupado Então esperar a próxima interrupção de
EOF e transmitir imediatamenteSe Meio = jam Então entrar em estado de Back-Off
para um tempo aleatório
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
ESPERA ⇒ SINCRONIZAÇÃO ⇒ COLISÃO
Espera
Est. C
Est. B
Back−Off
Transmissão
Est. A
Tempo
Colisão !
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet 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• Comunicação um-para-todos menos eficiente
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet 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• Comunicação um-para-todos menos eficiente
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
O problemaEthernet e Tempo Real
ESGOTAMENTO DA MEMÓRIA TAMPÃO DO SWITCH
perdidas
Transmissão
Est. C
Mensagens
Fila
cheiarecebe
Est. B para C
Est. A para C
de A e B
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ROTEIRO
1 MotivaçãoO problemaEthernet e Tempo Real
2 PROTOCOLOModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 ImplementaçãoSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ABORDAGEM TDMA
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
TIME DIVISION MULTIPLE ACCESS
(TDMA)• Intervalos periódicos de tempo
alocados a cada estação.• Problemas: Sincronização dos
relógios, desperdício
EXEMPLOS
TTP over Ethernet, RTnet
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ABORDAGEM TDMA
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
TIME DIVISION MULTIPLE ACCESS
(TDMA)• Intervalos periódicos de tempo
alocados a cada estação.• Problemas: Sincronização dos
relógios, desperdício
EXEMPLOS
TTP over Ethernet, RTnet
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ABORDAGEM TDMA
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
TIME DIVISION MULTIPLE ACCESS
(TDMA)• Intervalos periódicos de tempo
alocados a cada estação.• Problemas: Sincronização dos
relógios, desperdício
EXEMPLOS
TTP over Ethernet, RTnet
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ABORDAGEM TDMA
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
TIME DIVISION MULTIPLE ACCESS
(TDMA)• Intervalos periódicos de tempo
alocados a cada estação.• Problemas: Sincronização dos
relógios, desperdício
EXEMPLOS
TTP over Ethernet, RTnet
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ABORDAGEM TDMA
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1 21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
21
Time
: Slot Time
P1
P2
P3
P4
2 3 4 1
TIME DIVISION MULTIPLE ACCESS
(TDMA)• Intervalos periódicos de tempo
alocados a cada estação.• Problemas: Sincronização dos
relógios, desperdício
EXEMPLOS
TTP over Ethernet, RTnet
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 direitosde acesso ao meio
• Problemas: ponto de falhas,sobrecarga
EXEMPLOS
FTT, Ethernet Powerlink
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 direitosde acesso ao meio
• Problemas: ponto de falhas,sobrecarga
EXEMPLOS
FTT, Ethernet Powerlink
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 direitosde acesso ao meio
• Problemas: ponto de falhas,sobrecarga
EXEMPLOS
FTT, Ethernet Powerlink
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 controlemestre-escravo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 controlemestre-escravo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 controlemestre-escravo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 controlemestre-escravo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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
BBASTÃ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 controlemestre-escravo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ABORDAGENS NÃO CONTEMPLADAS
1 Com modificações do Hardware (EtherCAT, PRI, ...)2 Com garantias temporais probabilísticas (suavização do
tráfego, janelas temporais)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 mensagenscríticas, as estações rápidas utilizam a banda comcomunicação não crítica
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ROTEIRO
1 MotivaçãoO problemaEthernet e Tempo Real
2 PROTOCOLOModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 ImplementaçãoSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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)• Modelo de comunicação publish-subscribe
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
DoRiS - ESTRUTURA TEMPORAL (TDMA) Volta
chips
C-RdM-Rd
ciclo ciclo
chip chip chip
Ciclo de DoRiS (nServ ∗ ∆C)
SE SR
WH WS
• Tempo dividido emrodadas: M-Rd e C-Rd
• Ciclo: alternância dechips (∆C )
• Chip: janela crítica (WH )e não crítica (WS )
• WH (2∆E ): slotelementar (SE ) e dereserva (SR )
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
UM chip DoRiS (∆E )
Janela não-críticas
Dis
tânc
ia
Slot de reservaSlot elementar∆S ∆S
m(T1) m(T7) m(P2) m(P5) m(P7)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
DoRiS - PROPRIEDADE FUNDAMENTAL
MENSAGENS ELEMENTARES
• Obrigatórias: cada servidor envia uma mensagemelementar em cada ciclo
⇒ pulso descentralizado com período ∆C
CONSEQÜÊNCIAS
Periodicidade ⇒ Determinismo e Sincronismo
INFORMAÇÕES NAS MENSAGENS ELEMENTARES
• Flexibilidade do anel crítico: mecanismo de reserva• Gerenciamento do grupo de processos (novo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
DoRiS - PROPRIEDADE FUNDAMENTAL
MENSAGENS ELEMENTARES
• Obrigatórias: cada servidor envia uma mensagemelementar em cada ciclo
⇒ pulso descentralizado com período ∆C
CONSEQÜÊNCIAS
Periodicidade ⇒ Determinismo e Sincronismo
INFORMAÇÕES NAS MENSAGENS ELEMENTARES
• Flexibilidade do anel crítico: mecanismo de reserva• Gerenciamento do grupo de processos (novo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
DoRiS - PROPRIEDADE FUNDAMENTAL
MENSAGENS ELEMENTARES
• Obrigatórias: cada servidor envia uma mensagemelementar em cada ciclo
⇒ pulso descentralizado com período ∆C
CONSEQÜÊNCIAS
Periodicidade ⇒ Determinismo e Sincronismo
INFORMAÇÕES NAS MENSAGENS ELEMENTARES
• Flexibilidade do anel crítico: mecanismo de reserva• Gerenciamento do grupo de processos (novo)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 recebeuas nServ mensagens elementares que precede o seu chip.
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 recebeuas nServ mensagens elementares que precede o seu chip.
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 umamensagem elementar, um servidor perde o direito deenviar mensagens não-críticas
• Depois de uma janela WS vazia, todos os servidoresatualizam o grupo para o conjunto vazio
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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 umamensagem elementar, um servidor perde o direito deenviar mensagens não-críticas
• Depois de uma janela WS vazia, todos os servidoresatualizam o grupo para o conjunto vazio
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
ROTEIRO
1 MotivaçãoO problemaEthernet e Tempo Real
2 PROTOCOLOModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 ImplementaçãoSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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• Similaridades com um código de programas
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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• Liveness é uma condição de evolução do sistema
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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• Liveness é uma condição de evolução do sistema
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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çõesde envio de mensagens (elementar, de reserva enão-crítica)
• Receive : ação de recepção de um mensagem• NextTick e NextChip : ação de passagem do tempo
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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çõesde envio de mensagens (elementar, de reserva enão-crítica)
• Receive : ação de recepção de um mensagem• NextTick e NextChip : ação de passagem do tempo
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
PROPRIEDADES TEMPORAIS (INÍCIO)
AUSÊNCIA DE COLISÃO
Send(q)∆=
∨ ∧ q ∈ TaskSet∧ (ENABLED SendElem(q) ∨ ENABLED SendRese(q))
∨ ∧ q ∈ ProcSet(Shared .proc)∧ ENABLED SendSoft(q)
CollisionAvoidance ∆=
∀p, q ∈ TaskSet ∪ ProcSet(Proc) :2(ENABLED (Send(p) ∧ Send(q)) ⇒ (p = q))
NoCollisionAvoidance ∆=
∃p, q ∈ TaskSet ∪ ProcSet(Proc) :3((p 6= q) ∧ ENABLED (Send(p) ∧ Send(q)))
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
PROPRIEDADES TEMPORAIS (CONT.)
CORREÇÃO DO ANEL CRÍTICO
HardRingCorrectness ∆=
∧ ∀ t ∈ TaskSet :∧ 2(Len(TaskState[taskId(t)].msg) ≤ 3)∧ 23(ENABLED SendElem(t))
∧ 2(ENABLED NextChip⇒ History .elem = Shared .chipCount)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
PROPRIEDADES TEMPORAIS (CONT.)
CORREÇÃO DO MECANISMO DE RESERVA
ReservationSafety ∆=
2 ∀ chip, j ∈ Task : ∧ ENABLED SendRese(T [j])∧ Shared .chipCount = chip
⇒ ∧ TaskState[j].res[chip] = j∧ ∀ i ∈ Task \ {j} :
TaskState[i].res[chip] ∈ {j , − 1}
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Modelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificaçã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= 〈〉⇒ 3(i = ProcState[i].token)))
∧ 23(∀ i ∈ Proc \ Failed :i ∈ Shared .proc ⇒ Len(ProcState[i].list) = 0)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
ROTEIRO
1 MotivaçãoO problemaEthernet e Tempo Real
2 ProtocoloModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 IMPLEMENTAÇÃOSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
MOTIVAÇÃO PARA O USO DE LINUX
• SO de código livre e aberto com boa aceitação nosambientes de pesquisa acadêmica
• Grande variedade de aplicações (multimídia, banco dedados, sistemas embarcadas...)
LINUX NÃO É DETERMINÍSTICO
Resolução temporal, escalonamento (resolução do tick),interrupção
AVALIAÇÃO DE 3 PLATAFORMAS
• 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
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
MOTIVAÇÃO PARA O USO DE LINUX
• SO de código livre e aberto com boa aceitação nosambientes de pesquisa acadêmica
• Grande variedade de aplicações (multimídia, banco dedados, sistemas embarcadas...)
LINUX NÃO É DETERMINÍSTICO
Resolução temporal, escalonamento (resolução do tick),interrupção
AVALIAÇÃO DE 3 PLATAFORMAS
• 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
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
MOTIVAÇÃO PARA O USO DE LINUX
• SO de código livre e aberto com boa aceitação nosambientes de pesquisa acadêmica
• Grande variedade de aplicações (multimídia, banco dedados, sistemas embarcadas...)
LINUX NÃO É DETERMINÍSTICO
Resolução temporal, escalonamento (resolução do tick),interrupção
AVALIAÇÃO DE 3 PLATAFORMAS
• 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
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
LATÊNCIAS DE INTERRUPÇÃO E DE ATIVAÇÃO
Processos
placa de redeEventosIRQs
kernelModo
usuárioModo
TEth
tempo
t1
NA ESTAÇÃO DE MEDIÇÃO EM
• t1: chegada de um pacote enviado por ED ⇒ TEth
• t2: TEth escreve na Porta Paralela ⇒ TPP
• t3: TPP escalona τ ⇒ τ
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
LATÊNCIAS DE INTERRUPÇÃO E DE ATIVAÇÃO
Latirq
placa de redeEventosIRQs
kernelModo
usuárioModo
TEth TPP
tempo
Processos
t1 t2porta paralela
NA ESTAÇÃO DE MEDIÇÃO EM
• t1: chegada de um pacote enviado por ED ⇒ TEth
• t2: TEth escreve na Porta Paralela ⇒ TPP
• t3: TPP escalona τ ⇒ τ
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
LATÊNCIAS DE INTERRUPÇÃO E DE ATIVAÇÃO
Latativ
placa de redeEventosIRQs
kernelModo
usuárioModo
TEth TPP
tempo
Processos
t1 t2 t3porta paralela
τ
TPP
Latirq
NA ESTAÇÃO DE MEDIÇÃO EM
• t1: chegada de um pacote enviado por ED ⇒ TEth
• t2: TEth escreve na Porta Paralela ⇒ TPP
• t3: TPP escalona τ ⇒ τ
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
METODOLOGIA EXPERIMENTAL
01
EMED EC
Porta Paralela
DISPOSITIVO
• Estação de medição EM : tarefa de tempo real τ
• Estação de disparo ED: envia pacotes Ethernet com umafreqüência fixa de 20Hz para a estação EM
• Estação de carga EC : provoca carga de interrupção naestação EM
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
ESTRESSES DO SO DA ESTAÇÃO EM
CARGA DO PROCESSADOR E DE E/S
while "true"; dodd if=/dev/hda2 of=/dev/null bs=1M count=1000find / -name ”*.c” | xargs egrep includetar -cjf /tmp/root.tbz2 /usr/src/linux-xenomaicd /usr/src/linux-preempt; make clean; make
done
ESTRESSES DE INTERRUPÇÕES
Fluxo de pacotes de 64 bytes na freqüência de 200kHz entreEM (servidor) e EC (cliente) (100.000 interrupções porsegundos)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
ESTRESSES DO SO DA ESTAÇÃO EM
CARGA DO PROCESSADOR E DE E/S
while "true"; dodd if=/dev/hda2 of=/dev/null bs=1M count=1000find / -name ”*.c” | xargs egrep includetar -cjf /tmp/root.tbz2 /usr/src/linux-xenomaicd /usr/src/linux-preempt; make clean; make
done
ESTRESSES DE INTERRUPÇÕES
Fluxo de pacotes de 64 bytes na freqüência de 200kHz entreEM (servidor) e EC (cliente) (100.000 interrupções porsegundos)
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 cargaVM: 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 cargaVM: 10.4, DP: 1.9, Min: 8.8, Max: 67.7
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 cargaVM: 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 cargaVM: 58.5, DP: 26.4, Min: 17.2, Max: 245.9
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
LATÊNCIA DE INTERRUPÇÃO LINUXPrt OPÇÃ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 cargaVM: 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 60La
tênc
iaem
µs
Tempo de observação em s
LinuxPrt - Com cargaVM: 10.6, DP: 1.6, Min: 8.9, Max: 35.8
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 cargaVM: 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 cargaVM: 10.2, DP: 0.1, Min: 8.8, Max: 20.8
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 cargaVM: 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 cargaVM: 37.3, DP: 48.2, Min: 4.6, Max: 617.5
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 cargaVM: 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 cargaVM: 3.8, DP: 2.8, Min: 1.1, Max: 27.4
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 cargaVM: 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 cargaVM: 8.7, DP: 0.3, Min: 1.8, Max: 18.7
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
ROTEIRO
1 MotivaçãoO problemaEthernet e Tempo Real
2 ProtocoloModelos de soluçõesDoRiS - A Double Ring Service for RTSEspecificação formal em TLA+
3 IMPLEMENTAÇÃOSistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 Environmentfor Operating Systems
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
LOCALIZAÇÃO DO RTNET
Geren.
RTDM
Controladores de dispositivos
Aplicações
HALRTnet
REAL TIME NET
• Gerenciamento dememória (rtskb)
• Emissão e recepção demensagens por tarefas
• ARP estático,mecanismos defragmentação
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
ESTRUTURA EM CAMADA DO RTNET
Virtual NIC
Pilha de rede Linux
CONFIG RTDM
GerenciamentoAplicações
de tempo real
RTMAC
Aplicações demelhor 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
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
SINCRONIZAÇÃO DO ANEL CRÍTICO Estrutura temporal
PROBLEMA: DETERMINAR O INSTANTE DE INÍCIO DOS chips• 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
desprezíveis
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
MEDIDA DE ∆E Estrutura temporal
mB
B
C
t0 t2t1 t3A
mA
∆ ∆E∆E
mA
SINCRONIZAÇÃO
• Propriedades dacomunicaçãoum-para-todos
• B e C recebem mA nomesmo instante t1
• Na recepção de mB, Cdeduz∆E = (t3 − t1)−∆
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 deinterrupção - ' 10µs e no switch)
TAXAS DE TRANSFERÊNCIA
• 1Mbps para a comunicação crítica (determinística)• 46Mbps para a comunicação não crítica
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 deinterrupção - ' 10µs e no switch)
TAXAS DE TRANSFERÊNCIA
• 1Mbps para a comunicação crítica (determinística)• 46Mbps para a comunicação não crítica
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS 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 deinterrupção - ' 10µs e no switch)
TAXAS DE TRANSFERÊNCIA
• 1Mbps para a comunicação crítica (determinística)• 46Mbps para a comunicação não crítica
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
COMPARAÇÃO NOMAC VERSUS DORIS
SEM COMUNICAÇÃO NÃO-CRÍTICA
Comunicação crítica de período de 500µs ⇒ desvios máximosde 3µs em ambos os caso
COM COMUNICAÇÃO NÃO-CRÍTICA
• NoMAC ⇒ variabilidade de aproximadamente 160µs• DoRiS ⇒ variabilidade idêntica ao caso anterior
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
COMPARAÇÃO NOMAC VERSUS DORIS
SEM COMUNICAÇÃO NÃO-CRÍTICA
Comunicação crítica de período de 500µs ⇒ desvios máximosde 3µs em ambos os caso
COM COMUNICAÇÃO NÃO-CRÍTICA
• NoMAC ⇒ variabilidade de aproximadamente 160µs• DoRiS ⇒ variabilidade idêntica ao caso anterior
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
CONCLUSÃO
UM MESTRADO: 3 FACETAS
1 Concepção de um protocolo de comunicação de temporeal
2 Especificação e verificação formal em TLA+3 Implementação no SOTR Xenomai / Linux
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
PERSPECTIVAS
1 Acrescentar a implementação de DoRiS com omecanismo de reserva
2 Realizar o estudo experimental de DoRiS com cenários decomunicação de redes industriais (falhas)
3 Gerenciamento dinâmico da composição e reconfiguraçãodo grupo de servidor
4 DoRiS: distribuído, descentralizado e determinístico,compartilha um único barramento, tolerante às falhas deomissão e de paradas ⇒ redes sem fios ?
Paul Regnier DoRiS - Comunicação determinística em SOTR
MotivaçãoProtocolo
Implementação
Sistema Operacional de Tempo RealDoRiS na camada RTnet do Xenomai
PUBLICAÇÕES
P. Regnier, G. M. LimaDeterministic integration of hard and soft real-timecommunication over shared-EthernetProc. of Workshop of Tempo Real, 2006
P. Regnier, G. M. Lima, L. P. BarretoAvaliação do determinismo temporal no tratamento deinterrupções em plataformas de tempo real LinuxAccepted for publication by WSO, 2008
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ROTEIRO
4 APÊNDICEElementos de bibliografiaEspecificação formal
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ELEMENTOS DE BIBLIOGRAFIA I
L. LamportSpecifying Systems: The TLA+ language and tools forhardware and software engineersAddison Wesley, 2002
D. P. Bovet, M. CesatiUnderstanding the Linux KernelO’Reilly (3rd), 2005
J. Corbet and A. Rubini and G. Kroah-HartmanLinux Device DriversO’Reilly (3rd), 2005
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ELEMENTOS DE BIBLIOGRAFIA II
J.-D. DecotignieEthernet-based real-time and industrial communicationsProc. IEEE (Special issue on industrial communicationsystems), 93(6):1102-1117, 2005
F. B. Carreiro, J. A. Fonseca and P. PedreirasVirtual Token-Passing Ethernet - VTPEProc. FeT2003 5th IFAC Int. Conf. on Fieldbus Systemsand their Applications, 2003
F. B. Carreiro, J. A. Fonseca and P. PedreirasVirtual Token-Passing Ethernet - VTPEProc. FeT2003 5th IFAC Int. Conf. on Fieldbus Systemsand their Applications, 2003
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ELEMENTOS DE BIBLIOGRAFIA III
J. Kiszka and B. Wagner and Y. Zhang and J. BroeninkRTnet-A Flexible Hard Real-Time Networking FrameworkProc. of the 10th IEEE International Conference onEmerging Technologies and Factory Automation, 2005
I P. Gerum, K. Yaghmour et al.Xenomaihttp://www.xenomai.org, last access jan. 08
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ROTEIRO
4 APÊNDICEElementos de bibliografiaEspecificação formal
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
LÓGICA TEMPORAL DE AÇÕES Volta
Em TLA+, um sistema é representado por um conjunto deconstantes 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 fAção ∆
= Função de transição booleana
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ELEMENTOS DA LINGUAGEM TLA+ (INÍCIO) Volta
DEFINIÇÕES
• O operador ′ (linha) define o estado no qual a variável v éconsiderada
v : valor de v no estado iv ′: valor de v no estado f
EXEMPLOS
• Seja P : i → f um passo tal que v = 0 em i e v = 1 em f• [v ′ − v ] é uma função de transição que vale 1 em P⇒ A função de transição [v ′ = v + 1] é uma ação verdadeira
em P
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ELEMENTOS DA LINGUAGEM TLA+ (FIM) Volta
OPERADOR 2
Num comportamento Σ,uma ação A é verdadeira,ou seja, 2[A]vars
⇔ ∀P : i → f de Σ que alteraas 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 é oconjunto das ações que são definidas sobre P.
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
ENVIO DE MENSAGENS ELEMENTARES Volta
SendElem(t)∆
=∧ Shared .medium = {}∧ Shared .chipTimer = 0∧ let i
∆
= taskId(t)flag
∆
= if ProcState[i ].list 6= 〈〉 then 1 else 0in ∧ Shared .chipCount = i
∧ let resSet∆
= reservation(i)in ∧ Shared ′ = [Shared except
!.macTimer = delta,
!.medium = {[id 7→ i , type 7→ “hard”,
res 7→ resSet , procFlag 7→ 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]
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificaçã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 , type 7→ “hard”, res 7→ { − 1}]}]∧ TaskState ′ = [j ∈ Task 7→ [TaskState[j ] except
!.res[Shared .chipCount ] = − 1]]∧ History ′ = [History except !.rese = @ + 1]∧ unchanged ProcState
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificaçã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 ∨@ = 〈〉 then @ else Tail(@),![i ].count = if NoMsg then @ else @ + 1]
∧ unchanged 〈TaskState, History〉
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificaçã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 = − 1in 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 〈TaskState, History〉
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
RECEPÇÃO DE MENSAGENS CRÍTICAS Volta
RecvHard(m)∆
=∧ case m.res 6= { − 1} ∧m.procFlag = 1
→ ∧ Shared ′ = [Shared except !.medium = {},!.proc = @ ∪ {m.id}]
∧ unchanged ProcState
2 m.res 6= { − 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 ].tokenthen next(m.id , Shared .proc)else @]]
2 m.res = { − 1}→ ∧ Shared ′ = [Shared except !.medium = {}]
∧ unchanged ProcState
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificaçã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.res 6= { − 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}
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
PASSAGEM DO TEMPO Volta
NextTick∆
=let noRese
∆
= ∧ 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})
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificaçã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 = 0then if Len(TaskState[i ].msg) > 1
then pi
else Infinity
else if @ = Infinity then @ else @− d ]]∧ unchanged 〈ProcState, History〉
1
Paul Regnier DoRiS - Comunicação determinística em SOTR
ApêndiceElementos de bibliografiaEspecificação formal
TEMPO CIRCULAR Volta
NextChip∆
=∧ Shared .medium = {} ∧ Shared .chipTimer = deltaChip
∧ let Overflow∆
= ∃ j ∈ Shared .proc : Len(ProcState[j ].list) > 14TimeCircle
∆
= 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 if NextCycle 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 unchanged History
∧ unchanged TaskState
1
Paul Regnier DoRiS - Comunicação determinística em SOTR