SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Enquadramento    Mecanismos de Verificação            Soluções Industriais         Soluções Académicas




           Perfis de Segurança em Sistemas de Tempo Real e
                      Mecanismos de Verificação


                                  Joel Silva Carvalho

                              Mestrado em Engenharia Informática
                             Oritentação: Prof. Simão Melo de Sousa




                                RESCUE - 22/10/2008




                          Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                    1 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      2 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      3 / 57
Enquadramento     Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                   Objectivos



           Apresentar métodos de verificação aplicáveis aos sistemas de
           tempo real.
           Revelar e classificar algumas linguagens baseadas no modelo
           LET (Logical Execution Time).
           Potenciar um ponto de partida para um debate sobre Proof
           Carrying Code para sistemas embebidos (de tempo real ou
           não).




                           Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                     4 / 57
Enquadramento   Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                    Timeline




                         Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                   5 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      6 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                    Introdução


           Em 1997 na 8th International Real-Time Ada Workshop (IRTAW)
           ficou definido o perfil Ravenscar.
           Este perfil destina-se aos sistemas de tempo real críticos e
           consiste numa colecção de primitivas concorrentes e de
           restrições à linguagem Ada.
           O Ravenscar permite um desenvolvimento eficiente e
           aplicações capazes de serem verificadas quer na sua
           componente funcional como temporal.
           É de notar que o perfil pode e é aplicado noutras linguagens
           como o Java e o C.




                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      7 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                    Motivações

           Suporte da concorrência ao nível da linguagem permitindo
           verificação estática pelo compilador e outras ferramentas.
           Aumento da eficiência reduzindo a utilização de funcionalidades
           com um overhead elevado.
           Redução de situações não deterministas nas aplicações
           críticas.
           Possibilidade de utilização de kernels simplificados, ou seja
           mais eficientes.
           Remoção de funcionalidades de fraco suporte na verificação
           formal.
           Remoção de funcionalidades que inibem análises temporais
           efectivas.

                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      8 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                  Descrição resumida do perfil


           Declaração de tarefas e objectos protegidos apenas possível ao
           nível da biblioteca.
           Não é permitida a alocação dinâmica quer de tarefas como de
           objectos protegidos.
           Só são permitidos objectos protegidos com uma ou nenhuma
           entrada.
           As tarefas são assumidas como não terminais.
           Apenas uma tarefa pode ser colocada na fila de uma entrada.
           Não é permitida a reposição de elementos numa fila.




                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      9 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                  Descrição resumida do perfil


           Não é permitido o uso de instruções abort ou ATC
           (asynchronous transfer of control).
           Não é permitida a utilização de estruturas de controle Select.
           Na construção de tarefas periódicas não deve ser utilizada a
           instrução delay mas sim delay until.
           Apenas é necessária a utilização do pacote Real-Time, o pacote
           calendário não pode ser utilizado.
           Pragmas (directivas de compilação) atómicas e voláteis.
           Não é permitido o uso de prioridades dinâmicas.




                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      10 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      11 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                    Introdução


           Os sistemas de tempo real são frequentemente parte de um
           sistema crítico mais vasto o que enfatiza a utilização de
           métodos formais.
           Estes métodos devem acompanhar todo o processo de
           desenvolvimento sendo recorrente conjugar vários deles.
           Um dos métodos que devem ser utilizados no desenvolvimento
           de sistemas de tempo real é a verificação de modelos com
           base na lógica temporal. De notar que esta lógica divide-se
           em diversas famílias com expressividades distintas.
           Nem todas as ferramentas de verificação de modelos utilizam a
           mesma lógica temporal.



                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      12 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                      Motivação 1


             Métodos de verificação diferentes permitem, muitas vezes,
             validar propriedades distintas.
             Sem uma modelação correcta dificilmente se consegue
             desenvolver um sistema correcto.
             Os sistemas de tempo real requerem uma análise temporal
             (Timing Analysis) exaustiva que pode e deve ser feita numa
             fase inicial do desenvolvimento.
             A verificação de modelos é no entanto limitada e insuficiente
             uma vez que apenas permite verificar algumas regras temporais
             e asserções de segurança.



        1
            A comparative Study of Formal Methods for State Based Systems
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         13 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


     Propriedades passíveis de serem verificadas
                                                   2




     Segurança (Safety)
     Em certas condições, um determinado acontecimento não
     pode ocorrer.

     Acessibilidade (Reachability)
     Uma situação particular pode ser atingida. Pesquisa em
     forward chaining ou backward searching do grafo de
     acessibilidade.



        2
            Verificação Formal - Luís Descalço
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         14 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


     Propriedades passíveis de serem verificadas
                                                   2


     Razoabilidade (Fairness)
     Em certas condições, um determinado evento vai ocorrer (ou
     não vai ocorrer) uma infinidade de vezes.

     Vivacidade (Liveness)
     Em certas condições, um determinado evento vai acabar por
     acontecer.

     Ausência de DeadLock
     O sistema não pode chegar a uma situação a partir da qual
     nenhum progresso é possível.

        2
            Verificação Formal - Luís Descalço
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         15 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                         Algumas ferramentas 1                                  3




     RT-Spin
     Extensão da linguagem promela com noções temporais e
     Lógica LTL com asserções. Adequado para sistemas
     concorrentes interactivos.

     Kronos e UPPAAL
     Autómatos temporizados (Lógica temporal TCTL). Adequados
     para sistemas de tempo real.



        1
            A comparative Study of Formal Methods for State Based Systems
        3
            Vérification de logiciels: Techniques et outils du model-checking
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         16 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                         Algumas ferramentas 1                                  3




     SMV
     Autómatos temporizados (lógica temporal CTL). Adequado
     para sistemas concorrentes.

     HyTech
     Autómatos Híbridos Lineares. Adequado para sistemas
     embebidos críticos.




        1
            A comparative Study of Formal Methods for State Based Systems
        3
            Vérification de logiciels: Techniques et outils du model-checking
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         17 / 57
Enquadramento         Mecanismos de Verificação         Soluções Industriais        Soluções Académicas


                                     UPPAAL 1              4 5

            Proclamada como sendo uma das ferramentas de verificação de
            modelos mais utilizadas nos sistemas de tempo real.
            Utiliza extensões dos autómatos temporizados com
            propriedades acrescidas, como constantes inteiras, variáveis
            inteiras limitadas, variáveis booleanas, canais de sincronização
            e outras.
            Lisonjeada pela sua interface gráfica e pela sua capacidade
            de simulação, funcional mesmo para sistemas de grande
            dimensão onde a verificação não é possível (explosão de
            estados).
            Permite a definição/criação de autómatos tanto por interface
            gráfica como por formato textual próximo das linguagens de
            programação. Bem como a transformação de autómatos
            híbridos lineares em redes de autómatos temporais.
        1
          A comparative Study of Formal Methods for State Based Systems
        4
          UPPAAL - a Tool Suite for Automatic Verification of Real-Time Systems
        5
          A tutorial on UPPAAL de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                            Perfis
                                                                                                   18 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                         UPPAAL - Two Doors


           Uma sala possui duas portas que não podem ser abertas ao
           mesmo tempo.
           Cada porta abre quando o respectivo botão é premido.
           As portas demoram 6 segundos a abrir e outros 6 a fechar.
           Cada porta não pode estar aberta nem menos de 4 segundos
           nem mais de 8 segundos.
           Cada porta após ser fechada tem de permanecer fechada
           durante pelo menos 5 segundos.




                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      19 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                UPPAAL - Two Doors, Verificação
           E<> Door1.open | Acessibilidade - A Porta 1 abre.
           E<> Door2.open | Acessibilidade - A Porta 2 abre.
           Door1.wait –> Door1.open | Vivacidade - Quando o botão da
           porta 1 é premido a porta 1 eventualmente abre.
           Door2.wait –> Door2.open | Vivacidade - Quando o botão da
           porta 2 é premido a porta 2 eventualmente abre.
           A[] not deadlock | Ausência de deadlock - O sistema está livre
           de deadlock’s.
           A[] not (Door1.open and Door2.open) | Segurança - As duas
           portas nunca estão abertas ao mesmo tempo.
           A[] (Door1.opening imply User1.w<=31) and (Door2.opening
           imply User2.w<=31) | Segurança - Uma porta abre em
           intervalos de tempo iguais ou inferiores a 31 segundos.
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      20 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      21 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                     Motivação



           Utilização posterior à fase de modelação, este tipo de
           verificação está correlacionada com a linguagem de
           desenvolvimento.
           A verificação estática refina a verificação de modelos uma
           vez que faz verificação ao nível do código, mais precisamente
           na fase de compilação.
           Possibilidade de associar um selo de qualidade (certificado)
           ao código.




                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      22 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      23 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                  SPARK - SPADE Ada Kernel

           Linguagem de programação desenvolvida pela Praxis com
           base no Ada.
           Desde sempre segue uma abordagem correcta por construção
           (Correctness by Construction) recorrendo a anotações (pré,
           pós condições e outras).
           Em 2003 foi adoptado o perfil ravenscar para permitir o
           desenvolvimento de aplicações concorrentes.
           Permite uma extensa análise estática incluindo análises de
           fluxo de controlo, de dados e informação e recorre a um
           provador de teoremas que verifica outras propriedades
           matemáticas.
           Num modelo de desenvolvimento tradicional o Spark não
           substitui nem dispensa o processo de modelação.

                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      24 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                               Spark Examiner


           A primeira tarefa do Examiner consiste em analisar
           lexicalmente e sintacticamente cada unidade de compilação.
           Na segunda tarefa é feita uma análise semântica de cada
           unidade de compilação.
           Posteriormente é feita uma análise de fluxo de controlo que
           permite verificar se o código está bem estruturado.
           De seguida é feita a análise de fluxo de dados e informação
           para controlar a estabilidade dos ciclos, a não existência de
           variáveis declaradas mas não utilizadas, instruções sem efeito,
           utilização de variáveis não inicializadas e a consistência entre o
           fluxo de informação esperado e o actual.



                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      25 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                               Spark Examiner


           Por fim é feita uma detecção de erros que podem ocorrer em
           tempo de execução (divisão por zero, índice fora do tamanho,
           etc.) e são geradas obrigações de prova sobre esses
           possíveis erros.
           Algumas das obrigações de prova são descartadas com uma
           ferramenta automática (o Spark Simplifier) e as restantes
           deverão ser provadas recorrendo ao SPADE Proof Checker.
           A verificação feita pelo SPARK Examiner engloba ainda uma
           análise capaz de determinar o pior caso de
           execução(WCET).




                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      26 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                          The Tokeneer Project1


             O Tokeneer ID Station (TIS) é uma estação confiável e
             auto-suficiente responsável por validar identificações
             biométricas de utilizadores.
             9939 Linhas de código.
             260 Dias de trabalho.
             203 Linhas de código produzidas por dia, na fase de
             programação.
             1 Defeito descoberto desde a entrega.




        1
            http://www.adacore.com/home/gnatpro/tokeneer/
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        27 / 57
Enquadramento              Mecanismos de Verificação              Soluções Industriais          Soluções Académicas


                                     Algumas anotações


           global Torna visível uma variável global com o modo
           especificado.
       1   procedure Control;
       2   −−# g l o b a l i n Sensor . S t a t e ;
       3   −−# o u t Valve . S t a t e ;


           derives Especifica o fluxo de informação entre os parâmetros e
           variáveis globais de um procedimento.
       1   procedure Flt_Integrate(Fault : in Boolean;
       2   Trip : in out Boolean;
       3   Counter : in out Integer)
       4   −−# d e r i v e s T r i p from ∗ , F a u l t , Counter &
       5   −−# Counter from ∗ , F a u l t ;




                                       Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                                 28 / 57
Enquadramento         Mecanismos de Verificação            Soluções Industriais          Soluções Académicas


                              Algumas anotações


           pre Requisito essencial para o correcto funcionamento do
           programa.
           post Resultado garantido após uma correcta execução.
           assert Utilizado para especificar condições que devem ser
           sempre verdadeiras.
       1   procedure Div(M, N: in Integer; Q, R: out Integer)
       2   −−# d e r i v e s Q, R from M, N;
       3   −−# pre (M >= 0 ) and (N > 0 ) ;
       4   −−# p o s t (M = Q ∗ N + R) and (R < N) and (R >= 0 ) ;
       5   is
       6   begin
       7    Q := 0; R := M;
       8    loop
       9      −−# a s s e r t (M = Q ∗ N + R) and (R >= 0 ) ;




                                Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                          29 / 57
Enquadramento                   Mecanismos de Verificação                           Soluções Industriais               Soluções Académicas


                                                  Código Exemplo
 1   package Example
 2   ...
 3   is
 4      task type Producer;
 5     − −# d e c l a r e p e r i o d = > ( 2 0 0 ) ;
 6     − P e r i o d i c i d a d e da t a r e f a = 200ms
         −
 7     − −# d e c l a r e d e a d l i n e = > ( 2 0 0 ) ;
 8     − Tempo máximo para execução da t a r e f a = 200ms
         −
 9      ...
10   end Example;
11   ...
12
13   if Device = smart then
14     delay until next+Ada.Real_Time.milliseconds(70);
15     − enable d e v i c e
        −
16     Current := Ada.Real_Time.Clock;
17     delay until Current+Ada.Real_Time.Milliseconds(30);
18     − read from d e v i c e and c o n s t r u c t data
        −
19     Input Data.Write(Data);
20     −−# d e c l a r e d e a d l i n e = >( Next+Ada . Real_Time . M i l l i s e c o n d s ( 1 3 0 ) ) ;
21   else
22     for Count in 1..10 loop
23       − enable d e v i c e
           −
24        Current := Ada.Real_Time.Clock;
25        delay until Current+Ada.Real_Time.Milliseconds(2);
26       − read from 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 . Real_Time . M i l l i s e c o n d s ( 4 ) ) ;
28        ...

                                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                                                     30 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      31 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                  LET - Logical Execution Time 1

             Abstracção que está na base de todas as linguagens que vão
             ser apresentadas, no entanto surgiu com o desenvolvimento do
             Giotto.
             LET significa que o comportamento temporal de uma tarefa é
             independente da sua execução física.




        1
            Trends in Embedded Software Engineering
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        32 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                  LET - Logical Execution Time


           Considera-se que se a execução física for suficientemente
           rápida para se enquadrar nos intervalos lógicos de início e fim
           de tarefa então a execução é time-safe.
           Só após o evento de terminação lógico é que os resultados da
           tarefa podem ser acedidos por outras tarefas, mesmo que a
           execução física seja finalizada antes.
           De forma semelhante são introduzidos na memoria atribuída à
           tarefa os valores de entrada, aquando do evento de
           inicialização lógico e não do inicio físico da tarefa.




                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      33 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      34 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                        Giotto 1          2




             Modelo abstracto baseado numa linguagem de programação
             para sistemas embebidos com tarefas periódicas.
             Este modelo consiste num compilador e num ambiente de
             execução independente.
             A sua principal característica reside na abstracção que é feita ao
             nível da arquitectura. É feita uma divisão entre a parte lógica
             (quer funcional como temporal) e a parte física na qual o
             código vai ser executado tornando os programas
             completamente independentes da plataforma.



        1
            Giotto
        2
            Giotto: A Time-triggered Language for Embedded Programming
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        35 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Tasks 2


             As tarefas representam a funcionalidade de base de um
             programa Giotto. Elas são executadas em intervalos de tempos
             regulares (tarefas periódicas).
             As tarefas possuem um número arbitrário de portas de
             entrada e saída.
             A cada tarefa é associada uma função implementada por um
             programa sequencial escrito em qualquer linguagem.
             Para a implementação de um programa Giotto numa dada
             máquina o compilador necessita conhecer o WCET da
             função em cada unidade de processamento.



        2
            Giotto: A Time-triggered Language for Embedded Programming
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        36 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                         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 instruções para passagem a
             outro modo.




        2
            Giotto: A Time-triggered Language for Embedded Programming
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        37 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                Ports e Drivers 2



             Um porto representa uma variável tipada num espaço
             partilhado.
             Esse espaço pode ser de memória partilhada ou de outro tipo.
             Cada porto é persistente no sentido que mantém o seu valor
             ao longo do tempo até ser actualizado.
             Os Drivers são o que permitem a comunicação entre os
             portos das tarefas.




        2
            Giotto: A Time-triggered Language for Embedded Programming
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        38 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                     Anotações2

             Enquanto o designado código puro do Giotto é independente
             da plataforma esse mesmo código pode ser refinado com
             directivas de compilação na forma de anotações.
             Essas directivas podem mapear uma determinada tarefa para
             um unidade de processamento, escalonar uma tarefa num
             intervalo de tempo ou ainda escalonar um evento de
             comunicação entre tarefas num intervalo de tempo.
             De notar que estas anotações não influenciam as
             funcionalidades do programa apenas introduzem indicações
             ao compilador com utilidade na fase de implementação numa
             dada plataforma.


        2
            Giotto: A Time-triggered Language for Embedded Programming
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        39 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                     Anotações2

             Existem três níveis de anotações no Giotto. O primeiro
             designado por Giotto-H (H de Hardware) no qual é
             especificado o conjunto de unidade de processamento
             disponíveis, as redes e informações sobre os WCET de cada
             tarefa e outras informações sobre os tempos de comunicação.
             O segundo nível é designado por Giotto-HM (M de Map) e
             neste é acrescentada informação sobre o mapeamento entre as
             tarefas e as unidades de processamento.
             O terceiro e último nível é designado por Giotto-HMS (S de
             Scheduling) e especifica em adição informações sobre o
             escalonamento de cada unidade de processamento.
             De notar que estas anotações variam consoante o RTOS de
             destino.

        2
            Giotto: A Time-triggered Language for Embedded Programming
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        40 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                      Verificação3


             Uma das formas apresentadas para fazer verificação de
             programas Giotto consiste num esquema de tradução do
             modelo para redes de autómatos temporizados (mais
             precisamente para a ferramenta de verificação de modelos
             UPPAAL).
             Este esquema de tradução divide-se em duas partes. Numa
             primeira é considerado apenas o código puro do Giotto (sem as
             anotações) e numa segunda parte são consideradas as
             anotações.




        3
            Verification of Giotto Based Embedded Control Systems
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         41 / 57
Enquadramento       Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                Exemplo - Single-CPU Helicopter 4




        4
            http://embedded.eecs.berkeley.edu/giotto/
                             Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                       42 / 57
Enquadramento       Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                 Exemplo - Two-CPU Helicopter 4




        4
            http://embedded.eecs.berkeley.edu/giotto/
                             Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                       43 / 57
Enquadramento       Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                        E-Code 4




        4
            http://embedded.eecs.berkeley.edu/giotto/
                             Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                       44 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      45 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                  SCC - Schedule Carrying Code1

             Do processo de compilação do Giotto obtemos o designado
             E-Code (Embedded Code) que é executado numa máquina
             virtual, a E-Machine. Este E-Code é time-safe se for
             encontrado um escalonamento possível para a plataforma na
             qual se quer implementar a aplicação.
             O SCC introduz um conceito novo que dá origem ao S-Code
             (Scheduling Code), isto é, uma linguagem máquina executável
             que permite especificar o escalonamento.
             Ao contrário do que acontece no Giotto original neste modelo
             temos o E-Code que é independente da plataforma e o S-Code
             que passa a ser dependente da plataforma mas que valida a
             execução do E-Code dentro dos requisitos temporais.


        1
            Schedule-Carrying Code
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        46 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                SCC - Schedule Carrying Code 1                                          2



             O S-Code só é gerado se for encontrado um escalonamento
             que considere a execução do programa como time-safe. Este
             código pode ser visto como uma prova de escalonamento
             (Schedulabity Proof) para uma determinada plataforma.
             O S-Code consiste então num conjunto de instruções que
             determinam qual a tarefa a ser executada até que um
             determinado evento ocorra. Esse evento pode estar relacionado
             com o relógio, com uma tarefa ou até mesmo com um sensor.
             O S-Code pode ser gerado consoante qualquer estratégia de
             escalonamento em tempo de compilação, execução ou
             parcialmente em compilação e parcialmente em execução.


        1
            Schedule-Carrying Code
        2
            The Context of Schedule Carrying Code
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         47 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                      Exemplo 1               2




        1
            Schedule-Carrying Code
        2
            The embedded machine: predictable, portable real-time code.
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         48 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      49 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                TDL - Timing Definition Language 1

             Linguagem de programação baseada nos princípios do Giotto
             mas que fornece uma sintaxe mais conveniente e um conjunto
             de ferramentas alargado.
             Tanto o compilador como a E-Machine do TDL foram feitos sem
             recurso ao código do Giotto, tendo sido feitas as alterações
             consideradas fundamentais para uma possível aplicação em
             termos industriais.
             O TDL acrescenta um novo conceito relativamente ao Giotto.
             Trata-se da arquitectura baseada em componentes
             (módulos). Isto proporciona uma maior flexibilidade na
             construção de programas uma vez que os módulos são
             independentes, os mesmos podem no entanto ser referenciados
             entre eles e utilizados com múltiplos propósitos.

        1
            TDL Specification and Report
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        50 / 57
Enquadramento        Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                      Exemplo 2




        2
            The Timing Definition Language (TDL)
                              Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                        51 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      52 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                     xGiotto - eXtended Giotto 1                                  2

             O xGiotto surgiu pelas mãos dos criadores do Giotto como
             uma extensão do mesmo que se liberta da dependência dos
             sistemas de tarefas periódicas. Esta linguagem suporta em
             adição a utilização de eventos assíncronos.
             O xGiotto introduz ainda a F-Machine na qual é definido o
             código funcional das tarefas.
             De notar que o xGiotto realiza várias análises de integridade.
             A primeira visa rejeitar programas que contenham possíveis
             race conditions, isto é,detecta quando duas tarefas são
             terminadas por um mesmo evento que escrevem no mesmo
             porto. Numa segunda análise é feita uma previsão sobre a
             capacidade de memória necessária. Na terceira análise é
             verificada a time-safety do programa numa determinada
             plataforma.
        1
            xGiotto Language Report
        2
            Event-driven Programming with Logical Execution Times
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         53 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                        Exemplo 2




        2
            Event-driven Programming with Logical Execution Times
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         54 / 57
Enquadramento      Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                          Índice
     1   Enquadramento
           Introdução
           Perfil de Segurança Ravenscar
     2   Mecanismos de Verificação
           Verificação de Modelos
                UPPAAL
           Verificação Estática
     3   Soluções Industriais
           SPARK
     4   Soluções Académicas
           LET - Logical Execution Time
           Giotto
           SCC - Schedule Carrying Code
           TDL - Timing Definition Language
           xGiotto - eXtended Giotto
           HTL - Hierarchical Timing Language
                            Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                      55 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


             HTL - Hierarchical Timing Language 1


             O HTL é outra linguagem que teve por base o Giotto e neste
             momento tudo me leva a crer que pode ser considerado como o
             sucessor do xGiotto (alguns dos criadores desta linguagem
             estão na base do Giotto e do xGiotto).
             O HTL é mais flexível que o Giotto e suporta por base
             precedência de tarefas bem como refinamentos hierárquicos.
             Como vantagem sobre o xGiotto o HTL consegue simplificar o
             processo de prova de time-safety muito devido à sua estrutura
             hierárquica. Num programa HTL basta garantir que o modelo é
             time-safe ao nível mais alto.



        1
            A Hierarchical Coordination Language for Interacting Real-Time Tasks
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         56 / 57
Enquadramento         Mecanismos de Verificação           Soluções Industriais          Soluções Académicas


                                       Esquema 1




        1
            A Hierarchical Coordination Language for Interacting Real-Time Tasks
                               Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação
                                                                                                         57 / 57

Mais conteúdo relacionado

Semelhante a Verificação de Sistemas de Tempo Real

[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel Guilize
[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel Guilize[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel Guilize
[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel GuilizeTI Safe
 
CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor...
 CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor... CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor...
CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor...TI Safe
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetroRodrigo Campos
 
CLASS 2016 - Palestra Eduardo Fernandes
CLASS 2016 - Palestra Eduardo FernandesCLASS 2016 - Palestra Eduardo Fernandes
CLASS 2016 - Palestra Eduardo FernandesTI Safe
 
CLASS 2016 - Palestra Renato Mendes
CLASS 2016 - Palestra Renato Mendes CLASS 2016 - Palestra Renato Mendes
CLASS 2016 - Palestra Renato Mendes TI Safe
 
CLASS 2016 - Palestra Nicolau Branco
CLASS 2016 - Palestra Nicolau BrancoCLASS 2016 - Palestra Nicolau Branco
CLASS 2016 - Palestra Nicolau BrancoTI Safe
 
[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio RochaTI Safe
 
Automatização de Centro de Ddos: Realidade ou Utopia
Automatização de Centro de Ddos: Realidade ou UtopiaAutomatização de Centro de Ddos: Realidade ou Utopia
Automatização de Centro de Ddos: Realidade ou Utopiaelliando dias
 
Processo de Implantação de ERP
Processo de Implantação de ERPProcesso de Implantação de ERP
Processo de Implantação de ERPLuiz Araujo
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 
Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados Webcasts developerWorks Brasil
 
Software RCM2Web
Software RCM2WebSoftware RCM2Web
Software RCM2Websqlbrasil
 
White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...
White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...
White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...TI Safe
 
Experiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data WarehouseExperiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data WarehouseLuana Lobão
 
Planificação AISE
Planificação AISEPlanificação AISE
Planificação AISEaerc1
 

Semelhante a Verificação de Sistemas de Tempo Real (20)

[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel Guilize
[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel Guilize[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel Guilize
[CLASS 2014] Palestra Técnica - Silvio Prestes e Daniel Guilize
 
CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor...
 CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor... CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor...
CLASS 2022 - Rodrigo Riella (Lactec) e Claudio Hermeling (TI Safe) - A impor...
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
CLASS 2016 - Palestra Eduardo Fernandes
CLASS 2016 - Palestra Eduardo FernandesCLASS 2016 - Palestra Eduardo Fernandes
CLASS 2016 - Palestra Eduardo Fernandes
 
Aula 02
Aula 02Aula 02
Aula 02
 
CLASS 2016 - Palestra Renato Mendes
CLASS 2016 - Palestra Renato Mendes CLASS 2016 - Palestra Renato Mendes
CLASS 2016 - Palestra Renato Mendes
 
CLASS 2016 - Palestra Nicolau Branco
CLASS 2016 - Palestra Nicolau BrancoCLASS 2016 - Palestra Nicolau Branco
CLASS 2016 - Palestra Nicolau Branco
 
MS Enterprise Library
MS Enterprise LibraryMS Enterprise Library
MS Enterprise Library
 
[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha
 
Automatização de Centro de Ddos: Realidade ou Utopia
Automatização de Centro de Ddos: Realidade ou UtopiaAutomatização de Centro de Ddos: Realidade ou Utopia
Automatização de Centro de Ddos: Realidade ou Utopia
 
Processo de Implantação de ERP
Processo de Implantação de ERPProcesso de Implantação de ERP
Processo de Implantação de ERP
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
Auditoria de Processos
Auditoria de ProcessosAuditoria de Processos
Auditoria de Processos
 
QualysGuard Policy Manager
QualysGuard Policy ManagerQualysGuard Policy Manager
QualysGuard Policy Manager
 
11SMTF050922T03
11SMTF050922T0311SMTF050922T03
11SMTF050922T03
 
Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados
 
Software RCM2Web
Software RCM2WebSoftware RCM2Web
Software RCM2Web
 
White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...
White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...
White Paper - O uso de padrões abertos para proteção de sistemas scada e de a...
 
Experiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data WarehouseExperiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
 
Planificação AISE
Planificação AISEPlanificação AISE
Planificação AISE
 

Mais de Joel Carvalho

Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Joel Carvalho
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaJoel Carvalho
 
Verificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAALVerificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAALJoel Carvalho
 
Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)Joel Carvalho
 
Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Joel Carvalho
 
Minimização Autômatos
Minimização AutômatosMinimização Autômatos
Minimização AutômatosJoel Carvalho
 
Car Free Apresentacao
Car Free ApresentacaoCar Free Apresentacao
Car Free ApresentacaoJoel Carvalho
 

Mais de Joel Carvalho (18)

Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de Licenciatura
 
Tutorial de Uppaal
Tutorial de UppaalTutorial de Uppaal
Tutorial de Uppaal
 
Verificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAALVerificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAAL
 
Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)
 
Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)
 
Minimização Autômatos
Minimização AutômatosMinimização Autômatos
Minimização Autômatos
 
carFree2
carFree2carFree2
carFree2
 
Car Free Apresentacao
Car Free ApresentacaoCar Free Apresentacao
Car Free Apresentacao
 
Sensor Networks
Sensor NetworksSensor Networks
Sensor Networks
 
Prog Din08
Prog Din08Prog Din08
Prog Din08
 
Spec#
Spec#Spec#
Spec#
 

Último

Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 

Último (20)

Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 

Verificação de Sistemas de Tempo Real

  • 1. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação Joel Silva Carvalho Mestrado em Engenharia Informática Oritentação: Prof. Simão Melo de Sousa RESCUE - 22/10/2008 Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 1 / 57
  • 2. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 2 / 57
  • 3. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 3 / 57
  • 4. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Objectivos Apresentar métodos de verificação aplicáveis aos sistemas de tempo real. Revelar e classificar algumas linguagens baseadas no modelo LET (Logical Execution Time). Potenciar um ponto de partida para um debate sobre Proof Carrying Code para sistemas embebidos (de tempo real ou não). Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 4 / 57
  • 5. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Timeline Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 5 / 57
  • 6. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 6 / 57
  • 7. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Introdução Em 1997 na 8th International Real-Time Ada Workshop (IRTAW) ficou definido o perfil Ravenscar. Este perfil destina-se aos sistemas de tempo real críticos e consiste numa colecção de primitivas concorrentes e de restrições à linguagem Ada. O Ravenscar permite um desenvolvimento eficiente e aplicações capazes de serem verificadas quer na sua componente funcional como temporal. É de notar que o perfil pode e é aplicado noutras linguagens como o Java e o C. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 7 / 57
  • 8. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Motivações Suporte da concorrência ao nível da linguagem permitindo verificação estática pelo compilador e outras ferramentas. Aumento da eficiência reduzindo a utilização de funcionalidades com um overhead elevado. Redução de situações não deterministas nas aplicações críticas. Possibilidade de utilização de kernels simplificados, ou seja mais eficientes. Remoção de funcionalidades de fraco suporte na verificação formal. Remoção de funcionalidades que inibem análises temporais efectivas. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 8 / 57
  • 9. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Descrição resumida do perfil Declaração de tarefas e objectos protegidos apenas possível ao nível da biblioteca. Não é permitida a alocação dinâmica quer de tarefas como de objectos protegidos. Só são permitidos objectos protegidos com uma ou nenhuma entrada. As tarefas são assumidas como não terminais. Apenas uma tarefa pode ser colocada na fila de uma entrada. Não é permitida a reposição de elementos numa fila. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 9 / 57
  • 10. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Descrição resumida do perfil Não é permitido o uso de instruções abort ou ATC (asynchronous transfer of control). Não é permitida a utilização de estruturas de controle Select. Na construção de tarefas periódicas não deve ser utilizada a instrução delay mas sim delay until. Apenas é necessária a utilização do pacote Real-Time, o pacote calendário não pode ser utilizado. Pragmas (directivas de compilação) atómicas e voláteis. Não é permitido o uso de prioridades dinâmicas. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 10 / 57
  • 11. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 11 / 57
  • 12. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Introdução Os sistemas de tempo real são frequentemente parte de um sistema crítico mais vasto o que enfatiza a utilização de métodos formais. Estes métodos devem acompanhar todo o processo de desenvolvimento sendo recorrente conjugar vários deles. Um dos métodos que devem ser utilizados no desenvolvimento de sistemas de tempo real é a verificação de modelos com base na lógica temporal. De notar que esta lógica divide-se em diversas famílias com expressividades distintas. Nem todas as ferramentas de verificação de modelos utilizam a mesma lógica temporal. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 12 / 57
  • 13. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Motivação 1 Métodos de verificação diferentes permitem, muitas vezes, validar propriedades distintas. Sem uma modelação correcta dificilmente se consegue desenvolver um sistema correcto. Os sistemas de tempo real requerem uma análise temporal (Timing Analysis) exaustiva que pode e deve ser feita numa fase inicial do desenvolvimento. A verificação de modelos é no entanto limitada e insuficiente uma vez que apenas permite verificar algumas regras temporais e asserções de segurança. 1 A comparative Study of Formal Methods for State Based Systems Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 13 / 57
  • 14. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Propriedades passíveis de serem verificadas 2 Segurança (Safety) Em certas condições, um determinado acontecimento não pode ocorrer. Acessibilidade (Reachability) Uma situação particular pode ser atingida. Pesquisa em forward chaining ou backward searching do grafo de acessibilidade. 2 Verificação Formal - Luís Descalço Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 14 / 57
  • 15. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Propriedades passíveis de serem verificadas 2 Razoabilidade (Fairness) Em certas condições, um determinado evento vai ocorrer (ou não vai ocorrer) uma infinidade de vezes. Vivacidade (Liveness) Em certas condições, um determinado evento vai acabar por acontecer. Ausência de DeadLock O sistema não pode chegar a uma situação a partir da qual nenhum progresso é possível. 2 Verificação Formal - Luís Descalço Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 15 / 57
  • 16. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Algumas ferramentas 1 3 RT-Spin Extensão da linguagem promela com noções temporais e Lógica LTL com asserções. Adequado para sistemas concorrentes interactivos. Kronos e UPPAAL Autómatos temporizados (Lógica temporal TCTL). Adequados para sistemas de tempo real. 1 A comparative Study of Formal Methods for State Based Systems 3 Vérification de logiciels: Techniques et outils du model-checking Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 16 / 57
  • 17. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Algumas ferramentas 1 3 SMV Autómatos temporizados (lógica temporal CTL). Adequado para sistemas concorrentes. HyTech Autómatos Híbridos Lineares. Adequado para sistemas embebidos críticos. 1 A comparative Study of Formal Methods for State Based Systems 3 Vérification de logiciels: Techniques et outils du model-checking Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 17 / 57
  • 18. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas UPPAAL 1 4 5 Proclamada como sendo uma das ferramentas de verificação de modelos mais utilizadas nos sistemas de tempo real. Utiliza extensões dos autómatos temporizados com propriedades acrescidas, como constantes inteiras, variáveis inteiras limitadas, variáveis booleanas, canais de sincronização e outras. Lisonjeada pela sua interface gráfica e pela sua capacidade de simulação, funcional mesmo para sistemas de grande dimensão onde a verificação não é possível (explosão de estados). Permite a definição/criação de autómatos tanto por interface gráfica como por formato textual próximo das linguagens de programação. Bem como a transformação de autómatos híbridos lineares em redes de autómatos temporais. 1 A comparative Study of Formal Methods for State Based Systems 4 UPPAAL - a Tool Suite for Automatic Verification of Real-Time Systems 5 A tutorial on UPPAAL de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação Perfis 18 / 57
  • 19. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas UPPAAL - Two Doors Uma sala possui duas portas que não podem ser abertas ao mesmo tempo. Cada porta abre quando o respectivo botão é premido. As portas demoram 6 segundos a abrir e outros 6 a fechar. Cada porta não pode estar aberta nem menos de 4 segundos nem mais de 8 segundos. Cada porta após ser fechada tem de permanecer fechada durante pelo menos 5 segundos. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 19 / 57
  • 20. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas UPPAAL - Two Doors, Verificação E<> Door1.open | Acessibilidade - A Porta 1 abre. E<> Door2.open | Acessibilidade - A Porta 2 abre. Door1.wait –> Door1.open | Vivacidade - Quando o botão da porta 1 é premido a porta 1 eventualmente abre. Door2.wait –> Door2.open | Vivacidade - Quando o botão da porta 2 é premido a porta 2 eventualmente abre. A[] not deadlock | Ausência de deadlock - O sistema está livre de deadlock’s. A[] not (Door1.open and Door2.open) | Segurança - As duas portas nunca estão abertas ao mesmo tempo. A[] (Door1.opening imply User1.w<=31) and (Door2.opening imply User2.w<=31) | Segurança - Uma porta abre em intervalos de tempo iguais ou inferiores a 31 segundos. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 20 / 57
  • 21. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 21 / 57
  • 22. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Motivação Utilização posterior à fase de modelação, este tipo de verificação está correlacionada com a linguagem de desenvolvimento. A verificação estática refina a verificação de modelos uma vez que faz verificação ao nível do código, mais precisamente na fase de compilação. Possibilidade de associar um selo de qualidade (certificado) ao código. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 22 / 57
  • 23. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 23 / 57
  • 24. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas SPARK - SPADE Ada Kernel Linguagem de programação desenvolvida pela Praxis com base no Ada. Desde sempre segue uma abordagem correcta por construção (Correctness by Construction) recorrendo a anotações (pré, pós condições e outras). Em 2003 foi adoptado o perfil ravenscar para permitir o desenvolvimento de aplicações concorrentes. Permite uma extensa análise estática incluindo análises de fluxo de controlo, de dados e informação e recorre a um provador de teoremas que verifica outras propriedades matemáticas. Num modelo de desenvolvimento tradicional o Spark não substitui nem dispensa o processo de modelação. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 24 / 57
  • 25. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Spark Examiner A primeira tarefa do Examiner consiste em analisar lexicalmente e sintacticamente cada unidade de compilação. Na segunda tarefa é feita uma análise semântica de cada unidade de compilação. Posteriormente é feita uma análise de fluxo de controlo que permite verificar se o código está bem estruturado. De seguida é feita a análise de fluxo de dados e informação para controlar a estabilidade dos ciclos, a não existência de variáveis declaradas mas não utilizadas, instruções sem efeito, utilização de variáveis não inicializadas e a consistência entre o fluxo de informação esperado e o actual. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 25 / 57
  • 26. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Spark Examiner Por fim é feita uma detecção de erros que podem ocorrer em tempo de execução (divisão por zero, índice fora do tamanho, etc.) e são geradas obrigações de prova sobre esses possíveis erros. Algumas das obrigações de prova são descartadas com uma ferramenta automática (o Spark Simplifier) e as restantes deverão ser provadas recorrendo ao SPADE Proof Checker. A verificação feita pelo SPARK Examiner engloba ainda uma análise capaz de determinar o pior caso de execução(WCET). Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 26 / 57
  • 27. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas The Tokeneer Project1 O Tokeneer ID Station (TIS) é uma estação confiável e auto-suficiente responsável por validar identificações biométricas de utilizadores. 9939 Linhas de código. 260 Dias de trabalho. 203 Linhas de código produzidas por dia, na fase de programação. 1 Defeito descoberto desde a entrega. 1 http://www.adacore.com/home/gnatpro/tokeneer/ Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 27 / 57
  • 28. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Algumas anotações global Torna visível uma variável global com o modo especificado. 1 procedure Control; 2 −−# g l o b a l i n Sensor . S t a t e ; 3 −−# o u t Valve . S t a t e ; derives Especifica o fluxo de informação entre os parâmetros e variáveis globais de um procedimento. 1 procedure Flt_Integrate(Fault : in Boolean; 2 Trip : in out Boolean; 3 Counter : in out Integer) 4 −−# d e r i v e s T r i p from ∗ , F a u l t , Counter & 5 −−# Counter from ∗ , F a u l t ; Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 28 / 57
  • 29. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Algumas anotações pre Requisito essencial para o correcto funcionamento do programa. post Resultado garantido após uma correcta execução. assert Utilizado para especificar condições que devem ser sempre verdadeiras. 1 procedure Div(M, N: in Integer; Q, R: out Integer) 2 −−# d e r i v e s Q, R from M, N; 3 −−# pre (M >= 0 ) and (N > 0 ) ; 4 −−# p o s t (M = Q ∗ N + R) and (R < N) and (R >= 0 ) ; 5 is 6 begin 7 Q := 0; R := M; 8 loop 9 −−# a s s e r t (M = Q ∗ N + R) and (R >= 0 ) ; Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 29 / 57
  • 30. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Código Exemplo 1 package Example 2 ... 3 is 4 task type Producer; 5 − −# d e c l a r e p e r i o d = > ( 2 0 0 ) ; 6 − P e r i o d i c i d a d e da t a r e f a = 200ms − 7 − −# d e c l a r e d e a d l i n e = > ( 2 0 0 ) ; 8 − Tempo máximo para execução da t a r e f a = 200ms − 9 ... 10 end Example; 11 ... 12 13 if Device = smart then 14 delay until next+Ada.Real_Time.milliseconds(70); 15 − enable d e v i c e − 16 Current := Ada.Real_Time.Clock; 17 delay until Current+Ada.Real_Time.Milliseconds(30); 18 − read from d e v i c e and c o n s t r u c t data − 19 Input Data.Write(Data); 20 −−# d e c l a r e d e a d l i n e = >( Next+Ada . Real_Time . M i l l i s e c o n d s ( 1 3 0 ) ) ; 21 else 22 for Count in 1..10 loop 23 − enable d e v i c e − 24 Current := Ada.Real_Time.Clock; 25 delay until Current+Ada.Real_Time.Milliseconds(2); 26 − read from 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 . Real_Time . M i l l i s e c o n d s ( 4 ) ) ; 28 ... Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 30 / 57
  • 31. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 31 / 57
  • 32. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas LET - Logical Execution Time 1 Abstracção que está na base de todas as linguagens que vão ser apresentadas, no entanto surgiu com o desenvolvimento do Giotto. LET significa que o comportamento temporal de uma tarefa é independente da sua execução física. 1 Trends in Embedded Software Engineering Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 32 / 57
  • 33. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas LET - Logical Execution Time Considera-se que se a execução física for suficientemente rápida para se enquadrar nos intervalos lógicos de início e fim de tarefa então a execução é time-safe. Só após o evento de terminação lógico é que os resultados da tarefa podem ser acedidos por outras tarefas, mesmo que a execução física seja finalizada antes. De forma semelhante são introduzidos na memoria atribuída à tarefa os valores de entrada, aquando do evento de inicialização lógico e não do inicio físico da tarefa. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 33 / 57
  • 34. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 34 / 57
  • 35. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Giotto 1 2 Modelo abstracto baseado numa linguagem de programação para sistemas embebidos com tarefas periódicas. Este modelo consiste num compilador e num ambiente de execução independente. A sua principal característica reside na abstracção que é feita ao nível da arquitectura. É feita uma divisão entre a parte lógica (quer funcional como temporal) e a parte física na qual o código vai ser executado tornando os programas completamente independentes da plataforma. 1 Giotto 2 Giotto: A Time-triggered Language for Embedded Programming Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 35 / 57
  • 36. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Tasks 2 As tarefas representam a funcionalidade de base de um programa Giotto. Elas são executadas em intervalos de tempos regulares (tarefas periódicas). As tarefas possuem um número arbitrário de portas de entrada e saída. A cada tarefa é associada uma função implementada por um programa sequencial escrito em qualquer linguagem. Para a implementação de um programa Giotto numa dada máquina o compilador necessita conhecer o WCET da função em cada unidade de processamento. 2 Giotto: A Time-triggered Language for Embedded Programming Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 36 / 57
  • 37. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas 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 instruções para passagem a outro modo. 2 Giotto: A Time-triggered Language for Embedded Programming Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 37 / 57
  • 38. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Ports e Drivers 2 Um porto representa uma variável tipada num espaço partilhado. Esse espaço pode ser de memória partilhada ou de outro tipo. Cada porto é persistente no sentido que mantém o seu valor ao longo do tempo até ser actualizado. Os Drivers são o que permitem a comunicação entre os portos das tarefas. 2 Giotto: A Time-triggered Language for Embedded Programming Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 38 / 57
  • 39. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Anotações2 Enquanto o designado código puro do Giotto é independente da plataforma esse mesmo código pode ser refinado com directivas de compilação na forma de anotações. Essas directivas podem mapear uma determinada tarefa para um unidade de processamento, escalonar uma tarefa num intervalo de tempo ou ainda escalonar um evento de comunicação entre tarefas num intervalo de tempo. De notar que estas anotações não influenciam as funcionalidades do programa apenas introduzem indicações ao compilador com utilidade na fase de implementação numa dada plataforma. 2 Giotto: A Time-triggered Language for Embedded Programming Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 39 / 57
  • 40. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Anotações2 Existem três níveis de anotações no Giotto. O primeiro designado por Giotto-H (H de Hardware) no qual é especificado o conjunto de unidade de processamento disponíveis, as redes e informações sobre os WCET de cada tarefa e outras informações sobre os tempos de comunicação. O segundo nível é designado por Giotto-HM (M de Map) e neste é acrescentada informação sobre o mapeamento entre as tarefas e as unidades de processamento. O terceiro e último nível é designado por Giotto-HMS (S de Scheduling) e especifica em adição informações sobre o escalonamento de cada unidade de processamento. De notar que estas anotações variam consoante o RTOS de destino. 2 Giotto: A Time-triggered Language for Embedded Programming Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 40 / 57
  • 41. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Verificação3 Uma das formas apresentadas para fazer verificação de programas Giotto consiste num esquema de tradução do modelo para redes de autómatos temporizados (mais precisamente para a ferramenta de verificação de modelos UPPAAL). Este esquema de tradução divide-se em duas partes. Numa primeira é considerado apenas o código puro do Giotto (sem as anotações) e numa segunda parte são consideradas as anotações. 3 Verification of Giotto Based Embedded Control Systems Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 41 / 57
  • 42. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Exemplo - Single-CPU Helicopter 4 4 http://embedded.eecs.berkeley.edu/giotto/ Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 42 / 57
  • 43. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Exemplo - Two-CPU Helicopter 4 4 http://embedded.eecs.berkeley.edu/giotto/ Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 43 / 57
  • 44. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas E-Code 4 4 http://embedded.eecs.berkeley.edu/giotto/ Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 44 / 57
  • 45. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 45 / 57
  • 46. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas SCC - Schedule Carrying Code1 Do processo de compilação do Giotto obtemos o designado E-Code (Embedded Code) que é executado numa máquina virtual, a E-Machine. Este E-Code é time-safe se for encontrado um escalonamento possível para a plataforma na qual se quer implementar a aplicação. O SCC introduz um conceito novo que dá origem ao S-Code (Scheduling Code), isto é, uma linguagem máquina executável que permite especificar o escalonamento. Ao contrário do que acontece no Giotto original neste modelo temos o E-Code que é independente da plataforma e o S-Code que passa a ser dependente da plataforma mas que valida a execução do E-Code dentro dos requisitos temporais. 1 Schedule-Carrying Code Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 46 / 57
  • 47. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas SCC - Schedule Carrying Code 1 2 O S-Code só é gerado se for encontrado um escalonamento que considere a execução do programa como time-safe. Este código pode ser visto como uma prova de escalonamento (Schedulabity Proof) para uma determinada plataforma. O S-Code consiste então num conjunto de instruções que determinam qual a tarefa a ser executada até que um determinado evento ocorra. Esse evento pode estar relacionado com o relógio, com uma tarefa ou até mesmo com um sensor. O S-Code pode ser gerado consoante qualquer estratégia de escalonamento em tempo de compilação, execução ou parcialmente em compilação e parcialmente em execução. 1 Schedule-Carrying Code 2 The Context of Schedule Carrying Code Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 47 / 57
  • 48. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Exemplo 1 2 1 Schedule-Carrying Code 2 The embedded machine: predictable, portable real-time code. Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 48 / 57
  • 49. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 49 / 57
  • 50. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas TDL - Timing Definition Language 1 Linguagem de programação baseada nos princípios do Giotto mas que fornece uma sintaxe mais conveniente e um conjunto de ferramentas alargado. Tanto o compilador como a E-Machine do TDL foram feitos sem recurso ao código do Giotto, tendo sido feitas as alterações consideradas fundamentais para uma possível aplicação em termos industriais. O TDL acrescenta um novo conceito relativamente ao Giotto. Trata-se da arquitectura baseada em componentes (módulos). Isto proporciona uma maior flexibilidade na construção de programas uma vez que os módulos são independentes, os mesmos podem no entanto ser referenciados entre eles e utilizados com múltiplos propósitos. 1 TDL Specification and Report Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 50 / 57
  • 51. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Exemplo 2 2 The Timing Definition Language (TDL) Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 51 / 57
  • 52. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 52 / 57
  • 53. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas xGiotto - eXtended Giotto 1 2 O xGiotto surgiu pelas mãos dos criadores do Giotto como uma extensão do mesmo que se liberta da dependência dos sistemas de tarefas periódicas. Esta linguagem suporta em adição a utilização de eventos assíncronos. O xGiotto introduz ainda a F-Machine na qual é definido o código funcional das tarefas. De notar que o xGiotto realiza várias análises de integridade. A primeira visa rejeitar programas que contenham possíveis race conditions, isto é,detecta quando duas tarefas são terminadas por um mesmo evento que escrevem no mesmo porto. Numa segunda análise é feita uma previsão sobre a capacidade de memória necessária. Na terceira análise é verificada a time-safety do programa numa determinada plataforma. 1 xGiotto Language Report 2 Event-driven Programming with Logical Execution Times Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 53 / 57
  • 54. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Exemplo 2 2 Event-driven Programming with Logical Execution Times Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 54 / 57
  • 55. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Índice 1 Enquadramento Introdução Perfil de Segurança Ravenscar 2 Mecanismos de Verificação Verificação de Modelos UPPAAL Verificação Estática 3 Soluções Industriais SPARK 4 Soluções Académicas LET - Logical Execution Time Giotto SCC - Schedule Carrying Code TDL - Timing Definition Language xGiotto - eXtended Giotto HTL - Hierarchical Timing Language Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 55 / 57
  • 56. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas HTL - Hierarchical Timing Language 1 O HTL é outra linguagem que teve por base o Giotto e neste momento tudo me leva a crer que pode ser considerado como o sucessor do xGiotto (alguns dos criadores desta linguagem estão na base do Giotto e do xGiotto). O HTL é mais flexível que o Giotto e suporta por base precedência de tarefas bem como refinamentos hierárquicos. Como vantagem sobre o xGiotto o HTL consegue simplificar o processo de prova de time-safety muito devido à sua estrutura hierárquica. Num programa HTL basta garantir que o modelo é time-safe ao nível mais alto. 1 A Hierarchical Coordination Language for Interacting Real-Time Tasks Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 56 / 57
  • 57. Enquadramento Mecanismos de Verificação Soluções Industriais Soluções Académicas Esquema 1 1 A Hierarchical Coordination Language for Interacting Real-Time Tasks Perfis de Segurança em Sistemas de Tempo Real e Mecanismos de Verificação 57 / 57