O documento introduz a linguagem HTL para modelagem e verificação sistemática de programas de tempo real. Apresenta o compilador HTL e como ele gera redes de autômatos temporizados modeladas no UPPAAL para simulação e verificação de propriedades temporais. Descreve também o tradutor HTL2XTA que gera automaticamente modelos no formato do UPPAAL a partir de programas HTL.
1. Modela¸˜o e Verifica¸˜o Sistem´tica de Programas HTL
ca ca a
Sistemas de Tempo Real e Linguagens de Coordena¸˜o
ca
Joel Carvalho, Sim˜o Melo de Sousa
a
RELEASE - Reliable and Secure Computation Group, LIACC
Computer Science Department
University of Beira Interior, Portugal
12/05/2009
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 1 / 20
2. Conte´do
u
1 Objectivos
2 HTL
3 UPPAAL
4 HTL2XTA
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 2 / 20
3. Objectivos
1 Objectivos
2 HTL
3 UPPAAL
4 HTL2XTA
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 3 / 20
4. Objectivos
Objectivo da apresenta¸˜o
ca
Introduzir
Conceitos de base da linguagem HTL
Cria¸˜o de redes de aut´matos temporizados (RAT) atrav´s do HTL
ca o e
Especifica¸˜o de propriedades TCTL do modelo RAT
ca
Verifica¸˜o de propriedades pela t´cnica do Model Checking
ca e
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 4 / 20
5. HTL
1 Objectivos
2 HTL
3 UPPAAL
4 HTL2XTA
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 5 / 20
6. HTL
A Linguagem
O HTL (Hierarchical Timing Language) ´ uma linguagem de coordena¸˜o
e ca
hier´rquica para sistemas de tempo real cr´
a ıticos, capaz de verificar a
time-safety dos programas produzidos no que toca essencialmente ao
escalonamento.
J. Carvalho, S. Melo de Sousa () Figura:o Compilador HTL
Modela¸˜ e Verifica¸˜o Sistem´tica
ca ca a 6 / 20
7. HTL
Caracter´
ısticas
Refinamento de tarefas por Modes
Sequential Composition (Modes Switch)
Parallel Composition (Modules)
C´digo funcional das tarefas independente do HTL
o
Direct (Ports) e Inter (Communicators) Task Communication
No¸˜o de precedˆncia de tarefas com os Ports
ca e
Especifica¸˜o de WCET e WCTT
ca
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 7 / 20
8. HTL
LET - Logical Execution Time
O LET ´ uma abstrac¸˜o que permite dividir o comportamento temporal
e ca
de uma tarefa da sua execu¸˜o f´
ca ısica definindo um intervalo entre o ultimo
´
port de entrada e o primeiro port de sa´
ıda.
Figura: LET
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 8 / 20
9. HTL
Well Formed
S´ existe um Top-Level Program
o
Cada communicator n˜o pode ser redefinido num sub-programa
a
Quando n˜o definido no pr´prio programa, a utiliza¸˜o de um
a o ca
communicator implica que esteja definido num super-programa
Para cada invoca¸˜o de uma tarefa o tempo de leitura ´ pr´vio ao
ca e e
tempo de escrita
No mesmo modo duas invoca¸˜es de tarefas n˜o podem escrever no
co a
mesmo communicator ou no mesmo port.
Se um programa refina um modo, ent˜o o per´
a ıodo de todos os modos
desse programa ´ igual ao per´
e ıodo do modo que se refina
...
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 9 / 20
10. HTL
Well Timed
O WCET de uma tarefa tem de ser menor ou igual ao WCET da sua
tarefa pai
Idem para o WCTT
Ao contr´rio da Well-Formedness a Well-Timedness ´ dependente da
a e
plataforma
Assim um Programa em HTL pode ser Well-Formed
independentemente da plataforma, mas pode n˜o ser Well-Timed
a
para todas as plataformas
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 10 / 20
11. HTL
O que falta?
Como verificar que:
uma tarefa n˜o acontece simultaneamente que outra?
a
um modo n˜o ´ executado simultaneamente que outro?
a e
uma tarefa tem de ser executada quando outra tamb´m ´?
e e
uma dada tarefa ´ alguma vez executada?
e
uma tarefa nunca vai ser executada numa janela temporal?
o per´
ıodo de uma tarefa corresponde ao pretendido?
o compromisso entre os requisitos e o que foi programado bate certo?
...
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 11 / 20
12. UPPAAL
1 Objectivos
2 HTL
3 UPPAAL
4 HTL2XTA
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 12 / 20
13. UPPAAL
A Ferramenta
O Uppaal ´ uma ferramenta de modela¸˜o, simula¸˜o e verifica¸˜o
e ca ca ca
com uma interface gr´fica simples de manusear.
a
O Model Checker ´ independente da componente gr´fica do Uppaal.
e a
O Uppaal enquadra-se no contexto deste tradutor fornecendo
simula¸˜o e verifica¸˜o
ca ca
O tradutor fica respons´vel pela descri¸˜o automatizada do modelo
a ca
bem como de algumas propriedades
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 13 / 20
14. UPPAAL
Modela¸˜o
ca
Figura: RAT Exemplo
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 14 / 20
15. UPPAAL
Verifica¸˜o
ca
Figura: F´rmulas de caminho suportadas
o
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 15 / 20
16. HTL2XTA
1 Objectivos
2 HTL
3 UPPAAL
4 HTL2XTA
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 16 / 20
17. HTL2XTA
O Tradutor
Tradutor Automatizado de HTL para UPPAAL
Proof Obligation Generator
Figura: Tool Chain
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 17 / 20
19. HTL2XTA
Perspectivas futuras
Estudar a possibilidade de simplificar ainda mais o modelo gerado
pelo tradutor
Avaliar se vale a pena aumentar o grau de complexidade do modelo
acrescentando anota¸˜es ao HTL sobre quest˜es como as do Switch
co o
Arranjar uma forma simples de lidar com a situa¸˜o de m´ltiplos ports
ca u
numa s´ invoca¸˜o de tarefa
o ca
J. Carvalho, S. Melo de Sousa () Modela¸˜o e Verifica¸˜o Sistem´tica
ca ca a 19 / 20