Ferramentas de análise estática de código binário
Cálculo do tempo de execução no pior dos casos (WCET)
Deteção de erros de tempo de execução e de simultaneidade
Qual é o "pior caso de tempo de execução"?
As aplicações de missão crítica exigem que o código fonte seja exato, consistente e determinista.
Por exemplo, nas aplicações aeroespaciais, a DO-178C (ED-12C) exige este objetivo para os níveis de criticidade DAL C e superiores.
Entre outras actividades, é necessário determinar e analisar o tempo de execução mais desfavorável (WCET) de todas as tarefas existentes, a fim de garantir que os tempos de execução exigidos são cumpridos dentro de uma determinada margem.
Como é calculado?
É calculado obtendo o pior tempo de execução da tarefa ou do programa para qualquer condição de execução possível. É necessário ter em conta as diferentes ramificações do código e as possíveis execuções assíncronas devido a interrupções ou a alterações do contexto de execução das diferentes tarefas.
Há outros efeitos de nível inferior, como os mecanismos do processador para acelerar a execução do programa, como opipelineea cache, em que o tempo de execução de uma instrução é variável, dependendo do que foi executado anteriormente. Por último, com os processadores multi-núcleos , o cálculo do WCET torna-se mais complicado, uma vez que o efeito de diafonia entrenúcleosdeve ser adicionado ao acima referido.
Por conseguinte, obter a condição de execução do programa ou a tarefa que causa o pior tempo de execução é impossível nas aplicações actuais. O que se pode obter é um limite superior do WCET que será superior ao real, mas com uma pequena margem.
Análise WCET com ferramentas AbsInt
Existem três ferramentas AbsInt que calculam um limite superior de WCET. As ferramentas baseiam-se na análise estática do código binário final: Timing Profiler, aiT e TimeWeaver.