perfis de segurança em sistemas de tempo real e mecanismos de verificação
TRANSCRIPT
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
1/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Perfis de Segurana em Sistemas de Tempo Real eMecanismos de Verificao
Joel Silva Carvalho
Mestrado em Engenharia InformticaOritentao: Prof. Simo Melo de Sousa
RESCUE - 22/10/2008
1 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
2/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice1 Enquadramento
IntroduoPerfil de Segurana Ravenscar
2 Mecanismos de VerificaoVerificao de Modelos
UPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution Time
GiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
2 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
3/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice1 Enquadramento
IntroduoPerfil de Segurana Ravenscar
2 Mecanismos de VerificaoVerificao de Modelos
UPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution Time
GiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
3 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
4/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Objectivos
Apresentar mtodos de verificao aplicveis aos sistemas detempo real.
Revelar e classificar algumas linguagens baseadas no modeloLET (Logical Execution Time).
Potenciar um ponto de partida para um debate sobre ProofCarrying Code para sistemas embebidos (de tempo real ouno).
4 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
5/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Timeline
5 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
6/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice1 Enquadramento
IntroduoPerfil de Segurana Ravenscar
2 Mecanismos de VerificaoVerificao de Modelos
UPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution Time
GiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
6 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
7/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Introduo
Em 1997 na 8th International Real-Time Ada Workshop (IRTAW)ficou definido o perfil Ravenscar.
Este perfil destina-se aos sistemas de tempo real crticos econsiste numa coleco de primitivas concorrentes e derestries linguagem Ada.
O Ravenscar permite um desenvolvimento eficiente eaplicaes capazes de serem verificadas quer na suacomponente funcional como temporal.
de notar que o perfil pode e aplicado noutras linguagenscomo o Java e o C.
7 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
8/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Motivaes
Suporte da concorrncia ao nvel da linguagem permitindoverificao esttica pelo compilador e outras ferramentas.
Aumento da eficincia reduzindo a utilizao de funcionalidadescom um overhead elevado.
Reduo de situaes no deterministas nas aplicaescrticas.
Possibilidade de utilizao de kernels simplificados, ou sejamais eficientes.
Remoo de funcionalidades de fraco suporte na verificaoformal.
Remoo de funcionalidades que inibem anlises temporaisefectivas.
8 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
9/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Descrio resumida do perfil
Declarao de tarefas e objectos protegidos apenas possvel aonvel da biblioteca.
No permitida a alocao dinmica quer de tarefas como deobjectos protegidos.
S so permitidos objectos protegidos com uma ou nenhumaentrada.
As tarefas so assumidas como no terminais.
Apenas uma tarefa pode ser colocada na fila de uma entrada.
No permitida a reposio de elementos numa fila.
9 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
10/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Descrio resumida do perfil
No permitido o uso de instrues abort ou ATC(asynchronous transfer of control).
No permitida a utilizao de estruturas de controle Select.
Na construo de tarefas peridicas no deve ser utilizada ainstruo delay mas sim delay until.
Apenas necessria a utilizao do pacote Real-Time, o pacotecalendrio no pode ser utilizado.
Pragmas (directivas de compilao) atmicas e volteis.
No permitido o uso de prioridades dinmicas.
10 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
E d M i d V ifi S l I d i i S l A d i
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
11/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice1 Enquadramento
Introduo
Perfil de Segurana Ravenscar2 Mecanismos de Verificao
Verificao de ModelosUPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution Time
GiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
11 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
E d t M i d V ifi S l I d t i i S l A d i
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
12/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Introduo
Os sistemas de tempo real so frequentemente parte de umsistema crtico mais vasto o que enfatiza a utilizao demtodos formais.
Estes mtodos devem acompanhar todo o processo de
desenvolvimento sendo recorrente conjugar vrios deles.Um dos mtodos que devem ser utilizados no desenvolvimentode sistemas de tempo real a verificao de modelos combase na lgica temporal. De notar que esta lgica divide-seem diversas famlias com expressividades distintas.
Nem todas as ferramentas de verificao de modelos utilizam amesma lgica temporal.
12 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
13/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Motivao 1
Mtodos de verificao diferentes permitem, muitas vezes,validar propriedades distintas.
Sem uma modelao correcta dificilmente se conseguedesenvolver um sistema correcto.
Os sistemas de tempo real requerem uma anlise temporal(Timing Analysis) exaustiva que pode e deve ser feita numafase inicial do desenvolvimento.
A verificao de modelos no entanto limitada e insuficiente
uma vez que apenas permite verificar algumas regras temporaise asseres de segurana.
1A comparative Study of Formal Methods for State Based Systems
13 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
14/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Propriedades passveis de serem verificadas2
Segurana (Safety)
Em certas condies, um determinado acontecimento no
pode ocorrer.
Acessibilidade (Reachability)
Uma situao particular pode ser atingida. Pesquisa emforward chaining ou backward searching do grafo de
acessibilidade.
2Verificao Formal - Lus Descalo
14 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
15/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Propriedades passveis de serem verificadas2
Razoabilidade (Fairness)
Em certas condies, um determinado evento vai ocorrer (ouno vai ocorrer) uma infinidade de vezes.
Vivacidade (Liveness)Em certas condies, um determinado evento vai acabar poracontecer.
Ausncia de DeadLockO sistema no pode chegar a uma situao a partir da qualnenhum progresso possvel.
2Verificao Formal - Lus Descalo
15 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
16/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Algumas ferramentas 1 3
RT-Spin
Extenso da linguagem promela com noes temporais eLgica LTL com asseres. Adequado para sistemas
concorrentes interactivos.Kronos e UPPAAL
Autmatos temporizados (Lgica temporal TCTL). Adequadospara sistemas de tempo real.
1A comparative Study of Formal Methods for State Based Systems3Vrification de logiciels: Techniques et outils du model-checking
16 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
17/57
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Algumas ferramentas 1 3
SMV
Autmatos temporizados (lgica temporal CTL). Adequadopara sistemas concorrentes.
HyTech
Autmatos Hbridos Lineares. Adequado para sistemasembebidos crticos.
1A comparative Study of Formal Methods for State Based Systems3Vrification de logiciels: Techniques et outils du model-checking
17 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
18/57
q
UPPAAL 1 4 5
Proclamada como sendo uma das ferramentas de verificao de
modelos mais utilizadas nos sistemas de tempo real.Utiliza extenses dos autmatos temporizados compropriedades acrescidas, como constantes inteiras, variveisinteiras limitadas, variveis booleanas, canais de sincronizaoe outras.
Lisonjeada pela sua interface grfica e pela sua capacidadede simulao, funcional mesmo para sistemas de grandedimenso onde a verificao no possvel (exploso deestados).
Permite a definio/criao de autmatos tanto por interface
grfica como por formato textual prximo das linguagens deprogramao. Bem como a transformao de autmatoshbridos lineares em redes de autmatos temporais.
1A comparative Study of Formal Methods for State Based Systems4UPPAAL - a Tool Suite for Automatic Verification of Real-Time Systems
5A tutorial on UPPAAL 18 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
19/57
q
UPPAAL - Two Doors
Uma sala possui duas portas que no podem ser abertas aomesmo tempo.
Cada porta abre quando o respectivo boto premido.
As portas demoram 6 segundos a abrir e outros 6 a fechar.Cada porta no pode estar aberta nem menos de 4 segundosnem mais de 8 segundos.
Cada porta aps ser fechada tem de permanecer fechada
durante pelo menos 5 segundos.
19 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
20/57
UPPAAL - Two Doors, Verificao
E Door1.open | Acessibilidade - A Porta 1 abre.
E Door2.open | Acessibilidade - A Porta 2 abre.
Door1.wait > Door1.open | Vivacidade - Quando o boto daporta 1 premido a porta 1 eventualmente abre.
Door2.wait > Door2.open | Vivacidade - Quando o boto daporta 2 premido a porta 2 eventualmente abre.
A[] not deadlock | Ausncia de deadlock - O sistema est livrede deadlocks.
A[] not (Door1.open and Door2.open) | Segurana - As duas
portas nunca esto abertas ao mesmo tempo.A[] (Door1.opening imply User1.w
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
21/57
ndice1 Enquadramento
Introduo
Perfil de Segurana Ravenscar2 Mecanismos de Verificao
Verificao de ModelosUPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution Time
GiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
21 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
22/57
Motivao
Utilizao posterior fase de modelao, este tipo deverificao est correlacionada com a linguagem dedesenvolvimento.
A verificao esttica refina a verificao de modelos umavez que faz verificao ao nvel do cdigo, mais precisamentena fase de compilao.
Possibilidade de associar um selo de qualidade (certificado)ao cdigo.
22 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
23/57
ndice1 Enquadramento
Introduo
Perfil de Segurana Ravenscar2 Mecanismos de Verificao
Verificao de ModelosUPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution Time
GiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
23 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
24/57
SPARK - SPADE Ada Kernel
Linguagem de programao desenvolvida pela Praxis combase no Ada.
Desde sempre segue uma abordagem correcta por construo(Correctness by Construction) recorrendo a anotaes (pr,ps condies e outras).
Em 2003 foi adoptado o perfil ravenscar para permitir odesenvolvimento de aplicaes concorrentes.
Permite uma extensa anlise esttica incluindo anlises defluxo de controlo, de dados e informao e recorre a umprovador de teoremas que verifica outras propriedades
matemticas.
Num modelo de desenvolvimento tradicional o Spark nosubstitui nem dispensa o processo de modelao.
24 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
25/57
Spark Examiner
A primeira tarefa do Examiner consiste em analisarlexicalmente e sintacticamente cada unidade de compilao.
Na segunda tarefa feita uma anlise semntica de cadaunidade de compilao.
Posteriormente feita uma anlise de fluxo de controlo quepermite verificar se o cdigo est bem estruturado.
De seguida feita a anlise de fluxo de dados e informaopara controlar a estabilidade dos ciclos, a no existncia devariveis declaradas mas no utilizadas, instrues sem efeito,utilizao de variveis no inicializadas e a consistncia entre ofluxo de informao esperado e o actual.
25 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
26/57
Spark Examiner
Por fim feita uma deteco de erros que podem ocorrer emtempo de execuo (diviso por zero, ndice fora do tamanho,etc.) e so geradas obrigaes de prova sobre essespossveis erros.
Algumas das obrigaes de prova so descartadas com umaferramenta automtica (o Spark Simplifier) e as restantesdevero ser provadas recorrendo ao SPADE Proof Checker.
A verificao feita pelo SPARK Examiner engloba ainda umaanlise capaz de determinar o pior caso deexecuo(WCET).
26 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
27/57
The Tokeneer Project1
O Tokeneer ID Station (TIS) uma estao confivel eauto-suficiente responsvel por validar identificaesbiomtricas de utilizadores.
9939 Linhas de cdigo.
260 Dias de trabalho.
203 Linhas de cdigo produzidas por dia, na fase deprogramao.
1 Defeito descoberto desde a entrega.
1http://www.adacore.com/home/gnatpro/tokeneer/
27 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
http://www.adacore.com/home/gnatpro/tokeneer/http://www.adacore.com/home/gnatpro/tokeneer/ -
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
28/57
Algumas anotaes
global Torna visvel uma varivel global com o modoespecificado.
1 procedure Control;2 # g l o b a l i n S en so r . S t a t e ; 3 # o u t V a lv e . S t a t e ;
derives Especifica o fluxo de informao entre os parmetros evariveis globais de um procedimento.
1 procedure Flt_Integrate(Fault : in Boolean;2 Trip : in out Boolean;3 Counter : in out Integer)4 # d e ri v es T r i p fr om , F a u lt , C ou nt er &5 # C o un t er f r om , F a u l t ;
28 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
29/57
Algumas anotaes
pre Requisito essencial para o correcto funcionamento doprograma.
post Resultado garantido aps uma correcta execuo.
assert Utilizado para especificar condies que devem ser
sempre verdadeiras.1 procedure Div(M, N: in Integer; Q, R: out Integer)2 # d e r i ve s Q, R f r om M, N ; 3 # p re (M >= 0 ) and (N > 0 ) ; 4 # p os t (M = Q N + R) and ( R < N) and ( R >= 0 ) ; 5 is6 begin7 Q : = 0 ; R : = M ;8 loop9 # a s s er t (M = Q N + R) and (R >= 0 ) ;
29 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
30/57
Cdigo Exemplo1 package Example2 ...
3 is4 task type Producer;5 # d e cl a r e p e ri o d = > ( 2 00 ); 6 P e r i o d i c i d a d e da t a r e f a = 2 00ms 7 # d e cl a r e d e ad l in e = > ( 2 00 ) ; 8 Tempo mximo para execuo da ta re fa = 200ms9 ...
10 end Example;11 ...1213 if Device = smart then14 delay until next+Ada.Real_Time.milliseconds(70);15 e n ab l e d e v i c e 16 Current := Ada.Real_Time.Clock;17 delay until Current+Ada.Real_Time.Milliseconds(30);18 r ea d f r om d e vi c e a nd c o n s t r u c t d a ta 19 Input Data.Write(Data);20 # d e c l a r e d e a d l i n e = > ( N ex t+Ada . R ea l_ Ti me . M i l l i s e c o n d s ( 1 3 0 ) ) ; 21 else22 for Count in 1..10 loop23 e n ab l e d e v i c e 24 Current := Ada.Real_Time.Clock;25 delay until Current+Ada.Real_Time.Milliseconds(2);26 r e ad f r om d e v i c e 27 # d e c l a r e d e a d l i n e = > ( C u r r e n t +Ada . R ea l_ Ti me . M i l l i s e c o n d s ( 4 ) ) ; 28 ...
30 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
31/57
ndice1 Enquadramento
Introduo
Perfil de Segurana Ravenscar2 Mecanismos de Verificao
Verificao de ModelosUPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution TimeGiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
31 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
32/57
LET - Logical Execution Time 1
Abstraco que est na base de todas as linguagens que voser apresentadas, no entanto surgiu com o desenvolvimento doGiotto.
LET significa que o comportamento temporal de uma tarefa independente da sua execuo fsica.
1Trends in Embedded Software Engineering
32 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
33/57
LET - Logical Execution Time
Considera-se que se a execuo fsica for suficientementerpida para se enquadrar nos intervalos lgicos de incio e fimde tarefa ento a execuo time-safe.
S aps o evento de terminao lgico que os resultados datarefa podem ser acedidos por outras tarefas, mesmo que aexecuo fsica seja finalizada antes.
De forma semelhante so introduzidos na memoria atribuda tarefa os valores de entrada, aquando do evento de
inicializao lgico e no do inicio fsico da tarefa.
33 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
34/57
ndice1 Enquadramento
Introduo
Perfil de Segurana Ravenscar2 Mecanismos de Verificao
Verificao de ModelosUPPAAL
Verificao Esttica3 Solues Industriais
SPARK4 Solues Acadmicas
LET - Logical Execution TimeGiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
34 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
1 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
35/57
Giotto 1 2
Modelo abstracto baseado numa linguagem de programaopara sistemas embebidos com tarefas peridicas.
Este modelo consiste num compilador e num ambiente deexecuo independente.
A sua principal caracterstica reside na abstraco que feita aonvel da arquitectura. feita uma diviso entre a parte lgica(quer funcional como temporal) e a parte fsica na qual ocdigo vai ser executado tornando os programascompletamente independentes da plataforma.
1Giotto2Giotto: A Time-triggered Language for Embedded Programming
35 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
36/57
Tasks 2
As tarefas representam a funcionalidade de base de umprograma Giotto. Elas so executadas em intervalos de temposregulares (tarefas peridicas).
As tarefas possuem um nmero arbitrrio de portas de
entrada e sada.A cada tarefa associada uma funo implementada por umprograma sequencial escrito em qualquer linguagem.
Para a implementao de um programa Giotto numa dadamquina o compilador necessita conhecer o WCET da
funo em cada unidade de processamento.
2Giotto: A Time-triggered Language for Embedded Programming
36 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
M d 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
37/57
Modes 2
Um programa Giotto consiste num conjunto de modos, no qual repetido periodicamente um conjunto de tarefas predefinido.
Um programa s pode estar num modo de cada vez.Um modo pode ainda conter instrues para passagem aoutro modo.
2Giotto: A Time-triggered Language for Embedded Programming
37 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
P t D i 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
38/57
Ports e Drivers 2
Um porto representa uma varivel tipada num espaopartilhado.
Esse espao pode ser de memria partilhada ou de outro tipo.
Cada porto persistente no sentido que mantm o seu valorao longo do tempo at ser actualizado.
Os Drivers so o que permitem a comunicao entre osportos das tarefas.
2Giotto: A Time-triggered Language for Embedded Programming
38 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
A t 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
39/57
Anotaes2
Enquanto o designado cdigo puro do Giotto independenteda plataforma esse mesmo cdigo pode ser refinado comdirectivas de compilao na forma de anotaes.
Essas directivas podem mapear uma determinada tarefa paraum unidade de processamento, escalonar uma tarefa numintervalo de tempo ou ainda escalonar um evento decomunicao entre tarefas num intervalo de tempo.
De notar que estas anotaes no influenciam asfuncionalidades do programa apenas introduzem indicaes
ao compilador com utilidade na fase de implementao numadada plataforma.
2Giotto: A Time-triggered Language for Embedded Programming
39 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Anotaes2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
40/57
Anotaes2
Existem trs nveis de anotaes no Giotto. O primeirodesignado por Giotto-H (H de Hardware) no qual especificado o conjunto de unidade de processamentodisponveis, as redes e informaes sobre os WCET de cadatarefa e outras informaes sobre os tempos de comunicao.
O segundo nvel designado por Giotto-HM (M de Map) eneste acrescentada informao sobre o mapeamento entre astarefas e as unidades de processamento.
O terceiro e ltimo nvel designado por Giotto-HMS (S deScheduling) e especifica em adio informaes sobre o
escalonamento de cada unidade de processamento.De notar que estas anotaes variam consoante o RTOS dedestino.
2Giotto: A Time-triggered Language for Embedded Programming
40 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Verificao3
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
41/57
Verificao3
Uma das formas apresentadas para fazer verificao deprogramas Giotto consiste num esquema de traduo domodelo para redes de autmatos temporizados (maisprecisamente para a ferramenta de verificao de modelos
UPPAAL).Este esquema de traduo divide-se em duas partes. Numaprimeira considerado apenas o cdigo puro do Giotto (sem asanotaes) e numa segunda parte so consideradas asanotaes.
3Verification of Giotto Based Embedded Control Systems
41 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Exemplo Single CPU Helicopter 4
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
42/57
Exemplo - Single-CPU Helicopter 4
4http://embedded.eecs.berkeley.edu/giotto/
42 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Exemplo Two CPU Helicopter 4
http://embedded.eecs.berkeley.edu/giotto/http://embedded.eecs.berkeley.edu/giotto/ -
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
43/57
Exemplo - Two-CPU Helicopter 4
4http://embedded.eecs.berkeley.edu/giotto/
43 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
E Code 4
http://embedded.eecs.berkeley.edu/giotto/http://embedded.eecs.berkeley.edu/giotto/ -
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
44/57
E-Code
4http://embedded.eecs.berkeley.edu/giotto/
44 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice
http://embedded.eecs.berkeley.edu/giotto/http://embedded.eecs.berkeley.edu/giotto/ -
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
45/57
ndice1 Enquadramento
Introduo
Perfil de Segurana Ravenscar2 Mecanismos de Verificao
Verificao de ModelosUPPAAL
Verificao Esttica
3 Solues IndustriaisSPARK
4 Solues AcadmicasLET - Logical Execution TimeGiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
45 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
SCC - Schedule Carrying Code1
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
46/57
SCC - Schedule Carrying Code
Do processo de compilao do Giotto obtemos o designadoE-Code (Embedded Code) que executado numa mquinavirtual, a E-Machine. Este E-Code time-safe se forencontrado um escalonamento possvel para a plataforma naqual se quer implementar a aplicao.
O SCC introduz um conceito novo que d origem ao S-Code(Scheduling Code), isto , uma linguagem mquina executvelque permite especificar o escalonamento.
Ao contrrio do que acontece no Giotto original neste modelotemos o E-Code que independente da plataforma e o S-Code
que passa a ser dependente da plataforma mas que valida aexecuo do E-Code dentro dos requisitos temporais.
1Schedule-Carrying Code
46 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
SCC - Schedule Carrying Code 1 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
47/57
SCC - Schedule Carrying Code
O S-Code s gerado se for encontrado um escalonamentoque considere a execuo do programa como time-safe. Estecdigo pode ser visto como uma prova de escalonamento(Schedulabity Proof) para uma determinada plataforma.
O S-Code consiste ento num conjunto de instrues que
determinam qual a tarefa a ser executada at que umdeterminado evento ocorra. Esse evento pode estar relacionadocom o relgio, com uma tarefa ou at mesmo com um sensor.
O S-Code pode ser gerado consoante qualquer estratgia deescalonamento em tempo de compilao, execuo ou
parcialmente em compilao e parcialmente em execuo.
1Schedule-Carrying Code2The Context of Schedule Carrying Code
47 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Exemplo 1 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
48/57
Exemplo
1Schedule-Carrying Code2The embedded machine: predictable, portable real-time code.
48 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
49/57
ndice1 Enquadramento
Introduo
Perfil de Segurana Ravenscar2 Mecanismos de VerificaoVerificao de Modelos
UPPAAL
Verificao Esttica
3 Solues IndustriaisSPARK
4 Solues AcadmicasLET - Logical Execution TimeGiottoSCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
49 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
TDL - Timing Definition Language 1
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
50/57
TDL Timing Definition Language
Linguagem de programao baseada nos princpios do Giottomas que fornece uma sintaxe mais conveniente e um conjuntode ferramentas alargado.
Tanto o compilador como a E-Machine do TDL foram feitos semrecurso ao cdigo do Giotto, tendo sido feitas as alteraesconsideradas fundamentais para uma possvel aplicao emtermos industriais.
O TDL acrescenta um novo conceito relativamente ao Giotto.Trata-se da arquitectura baseada em componentes(mdulos). Isto proporciona uma maior flexibilidade na
construo de programas uma vez que os mdulos soindependentes, os mesmos podem no entanto ser referenciadosentre eles e utilizados com mltiplos propsitos.
1TDL Specification and Report
50 / 57Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Exemplo 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
51/57
Exemplo
2The Timing Definition Language (TDL)
51 / 57
Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
52/57
1 EnquadramentoIntroduo
Perfil de Segurana Ravenscar2 Mecanismos de VerificaoVerificao de Modelos
UPPAAL
Verificao Esttica
3 Solues IndustriaisSPARK
4 Solues AcadmicasLET - Logical Execution TimeGiotto
SCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
52 / 57
Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
xGiotto - eXtended Giotto 1 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
53/57
O xGiotto surgiu pelas mos dos criadores do Giotto comouma extenso do mesmo que se liberta da dependncia dossistemas de tarefas peridicas. Esta linguagem suporta emadio a utilizao de eventos assncronos.
O xGiotto introduz ainda a F-Machine na qual definido ocdigo funcional das tarefas.
De notar que o xGiotto realiza vrias anlises de integridade.A primeira visa rejeitar programas que contenham possveisrace conditions, isto ,detecta quando duas tarefas soterminadas por um mesmo evento que escrevem no mesmoporto. Numa segunda anlise feita uma previso sobre a
capacidade de memria necessria. Na terceira anlise verificada a time-safety do programa numa determinadaplataforma.
1xGiotto Language Report2Event-driven Programming with Logical Execution Times
53 / 57
Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Exemplo 2
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
54/57
p
2Event-driven Programming with Logical Execution Times
54 / 57
Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
ndice
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
55/57
1 EnquadramentoIntroduo
Perfil de Segurana Ravenscar2 Mecanismos de VerificaoVerificao de Modelos
UPPAAL
Verificao Esttica
3 Solues IndustriaisSPARK4 Solues Acadmicas
LET - Logical Execution TimeGiotto
SCC - Schedule Carrying CodeTDL - Timing Definition LanguagexGiotto - eXtended GiottoHTL - Hierarchical Timing Language
55 / 57
Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
HTL - Hierarchical Timing Language 1
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
56/57
O HTL outra linguagem que teve por base o Giotto e nestemomento tudo me leva a crer que pode ser considerado como osucessor do xGiotto (alguns dos criadores desta linguagemesto na base do Giotto e do xGiotto).
O HTL mais flexvel que o Giotto e suporta por baseprecedncia de tarefas bem como refinamentos hierrquicos.
Como vantagem sobre o xGiotto o HTL consegue simplificar oprocesso de prova de time-safety muito devido sua estruturahierrquica. Num programa HTL basta garantir que o modelo
time-safe ao nvel mais alto.
1A Hierarchical Coordination Language for Interacting Real-Time Tasks
56 / 57
Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
Enquadramento Mecanismos de Verificao Solues Industriais Solues Acadmicas
Esquema 1
-
8/4/2019 Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao
57/57
1A Hierarchical Coordination Language for Interacting Real-Time Tasks
57 / 57
Perfis de Segurana em Sistemas de Tempo Real e Mecanismos de Verificao