UFCD_10392_Intervenção em populações de risco_índice .pdf
Automatização da verificação de sistemas de tempo real críticos especificados em HTL
1. Verifica¸˜o Automatizada de
ca
Sistemas de Tempo Real Cr´ıticos
Disserta¸˜o de Mestrado em Eng. Inform´tica
ca a
Joel Carvalho,
Orientado pelo Professor Sim˜o Melo de Sousa
a
Departamento de Inform´tica
a
Universidade da Beira Interior, Portugal
09/07/2009
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 1 / 22
2. Conte´do
u
1 Enquadramento
2 UPPAAL
3 Hierarchical Timing Language
4 HTL2XTA
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 2 / 22
3. Enquadramento
1 Enquadramento
2 UPPAAL
3 Hierarchical Timing Language
4 HTL2XTA
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 3 / 22
4. Enquadramento
Objectivos
1a Parte - Estudo do estado da arte
Estudar m´todos formais aplicados nos Sistemas de Tempo Real
e
Cr´ıticos
Perfil Ravenscar (Ada/SPARK, verifica¸˜o est´tica)
ca a
Linguagens derivadas do Giotto (an´lise de escalonamento)
a
Verifica¸˜o de Modelos (Uppaal)
ca
2a Parte - Objectivos resultantes do estudo
Complementar a verifica¸˜o do HTL proporcionando a:
ca
Cria¸˜o automatizada de redes de aut´matos temporizados (RAT)
ca o
atrav´s do HTL
e
Automatiza¸˜o parcial da especifica¸˜o de propriedades sobre o modelo
ca ca
RAT
Posterior verifica¸˜o pelo verificador de modelos Uppaal
ca
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 4 / 22
5. Enquadramento
Contributo
1a Parte - Do estudo do estado da arte...
Concep¸˜o do processo de extens˜o da verifica¸˜o do HTL
ca a ca
(Tool-Chain HTL2XTA)
Tutorial de Uppaal com exerc´
ıcios pr´ticos
a
Algumas apresenta¸˜es p´blicas integradas no:
co u
RESCUE - REliable and Safe Code execUtion for Embedded systems
Release - RELiablE And SEcure Computation Group
Evolve - Evolutionary Validation, Verification and Certification (Critical
Software)
Ciclo de palestras e tutoriais do DIUM
2a Parte - Da implementa¸˜o dos objectivos resultantes do estudo...
ca
Desenvolvimento do tradutor automatizado de HTL para Uppaal
(HTL2XTA)
Verifica¸˜o de v´rios casos de estudo
ca a
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 5 / 22
6. UPPAAL
1 Enquadramento
2 UPPAAL
3 Hierarchical Timing Language
4 HTL2XTA
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 6 / 22
7. UPPAAL
A Ferramenta de Verifica¸˜o
ca
Caracter´
ısticas
O Uppaal ´ uma ferramenta de modela¸˜o, simula¸˜o e verifica¸˜o de
e ca ca ca
modelos para sistemas de tempo real cr´
ıticos
Permite especifica¸˜o gr´fica e textual do modelo do sistema
ca a
O motor do verificador de modelos (verifyta) ´ independente da
e
componente gr´fica da ferramenta
a
Modela¸˜o e Verifica¸˜o
ca ca
A especifica¸˜o do modelo ´ feita por interm´dio das RAT (com
ca e e
sincroniza¸˜es, invariantes, guardas, estados urgentes, vari´veis de
co a
rel´gio, etc.)
o
A especifica¸˜o das propriedades a verificar s˜o feitas com base num
ca a
sub conjunto da l´gica TCTL.
o
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 7 / 22
8. UPPAAL
Caracter´
ısticas da TCTL
Conectivas Temporais...
de caminho:
A (All) = A
E (Exist) = E
de estado:
G (Globally ) = []
F (Finally ) = <>
Timed Computation Tree Logic
N˜o permite o aninhamento de f´rmulas de caminho
a o
DeadLock Free = A[] not deadlock
Reachability = E<>φ
Safety = A[]φ ou E[]φ
Liveness = A<>φ ou φ --> ψ (≡ AG (φ =⇒ AF ψ))
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 8 / 22
9. Hierarchical Timing Language
1 Enquadramento
2 UPPAAL
3 Hierarchical Timing Language
4 HTL2XTA
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 9 / 22
10. Hierarchical Timing Language
A Linguagem de origem
O HTL (Hierarchical Timing Language) ´ uma linguagem de coordena¸˜o
e ca
hier´rquica para STR cr´
a ıticos com tarefas peri´dicas, capaz de verificar o
o
escalonamento
Figura: Compilador HTL1
1
Figura retirada da tese de doutoramento do Daniel Iercan
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 10 / 22
11. Hierarchical Timing Language
Caracter´
ısticas
Caracter´
ısticas Principais do HTL
Estruturalmente: Program > Module > Mode > invoke & switch
C´digo funcional das tarefas independente do HTL
o
Especifica¸˜o de WCET e WCTT sobre a forma de ”
ca anota¸˜o”
ca
Refinamento atrav´s da utiliza¸˜o de descri¸˜o abstracta e concreta
e ca ca
de tarefas
Composi¸˜o Sequencial (Modes Switch)
ca
Composi¸˜o Paralela (Modules)
ca
Comunica¸˜o Inter-tarefas (Communicators)
ca
Comunica¸˜o directa de tarefas (Ports)
ca
No¸˜o de precedˆncia de tarefas com os Ports
ca e
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 11 / 22
12. Hierarchical Timing Language
LET - Logical Execution Time
O LET ´ a abstrac¸˜o que permite dividir o comportamento temporal de
e ca
uma tarefa da sua execu¸˜o f´
ca ısica, definindo um intervalo entre o ultimo
´
input e o primeiro output de cada invoca¸˜o de tarefa
ca
Figura: LET2
2
Figura retirada da tese de doutoramento do Arkadeb Ghosal
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 12 / 22
13. Hierarchical Timing Language
Desvantagens
O HTL n˜o consegue verificar...
a
se uma determinada tarefa n˜o acontece simultaneamente que outra
a
se uma determinada tarefa ´ executada quando outra tamb´m ´
e e e
se uma dada tarefa ´ alguma vez executada
e
se um dada tarefa ´ executada sempre que se verifiquem determinadas
e
condi¸˜es
co
se existe concordˆncia entre os requisitos e o que foi programado
a
...
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 13 / 22
14. HTL2XTA
1 Enquadramento
2 UPPAAL
3 Hierarchical Timing Language
4 HTL2XTA
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 14 / 22
15. HTL2XTA
A Tool-Chain HTL2XTA
Cria¸˜o das redes de aut´matos temporizados (RAT) atrav´s de
ca o e
programas HTL (.xta)
Especifica¸˜o de propriedades inferidas do modelo (.q)
ca
Verifica¸˜o das propriedades do modelo (.vrf)
ca
Figura: Tool Chain
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 15 / 22
16. HTL2XTA
Modela¸˜o - Aut´matos de Tarefa
ca o
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 16 / 22
17. HTL2XTA
Modela¸˜o - Aut´matos de M´dulo
ca o o
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 17 / 22
18. HTL2XTA
Verifica¸˜o
ca
Per´ıodo dos Modos
Seja n ´ nome de um modo, p o per´
e ıodo do modo, t uma vari´vel de
a
rel´gio, moduleTA um aut´mato de m´dulo e Rat um conjunto de
o o o
aut´matos temporizados, ent˜o ∀mode ∈ Prog , ∃moduleTA ∈ Rat,
o a
p1 =A[] moduleTA.n imply ((not moduleTA.t > p) && (not moduleTA.t < 0))
p2 =moduleTA.n --> (moduleTA.Ready && (moduleTA.t == 0 ||
moduleTA.t == p)
p1 - Em todos os caminhos, a execu¸˜o do estado do modo implica
ca
que o rel´gio n˜o seja maior que o per´
o a ıodo e n˜o seja menor que zero
a
p2 - Sempre que se verificar a execu¸˜o do estado do modo ent˜o no
ca a
futuro quando se verificar o estado Ready, desse aut´mato de modulo,
o
o rel´gio ou ´ zero ou ´ o per´
o e e ıodo
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 18 / 22
19. HTL2XTA
Verifica¸˜o
ca
LET das Tarefas
Seja tt uma vari´vel de rel´gio, taskTAi o aut´mato da tarefa i, taskTA o
a o o
conjunto dos aut´matos de tarefa, modeState o estado do modo em que a
o
invoca¸˜o ´ feita, moduleTA um aut´mato de m´dulo e Rat um conjunto
ca e o o
de aut´matos temporizados, ent˜o
o a
∀i ∈ N, ∃moduleTA ∈ Rat, ∃taskTAi ∈ TaskTA,
p1 =A[] (taskTAi .Let imply (not taskTAi .tt < 0 && not taskTAi .tt > p))
p2 =A <> moduleTA.modeState imply (taskTAi .Lst IN && taskTAi .tt == 0)
p3 =A <> moduleTA.modeState imply (taskTAi .Let && taskTAi .tt == p)
p1 - A execu¸˜o do estado Let da tarefa i implica que o rel´gio tt n˜o
ca o a
seja menor que zero nem maior que p
p2/p3 - A execu¸˜o do estado do modo da tarefa implica que a dada
ca
altura o estado Lst IN/Let seja executado quando o rel´gio tt ´ igual
o e
a zero/p
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 19 / 22
21. HTL2XTA
Conclus˜o
a
Perspectivas futuras
Verificar formalmente o modelo de tradu¸˜o
ca
Avaliar e ordenar as provas pelo seu grau de dificuldade
Simplificar ainda mais o modelo gerado pelo tradutor
Estender o pr´prio HTL com anota¸˜es sobre os Switch
o co
Transpor este modelo ou um modelo similar para o Ada/SPARK
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 21 / 22
22. HTL2XTA
FIM
Obrigado pela presen¸a...
c
Perguntas?
J. Carvalho, Orientador: S. Melo de Sousa () Verifica¸˜o Automatizada de STR Cr´
ca ıticos 22 / 22