Métodos Estatísticos e de Inteligência Computacional para Análise Temporal em Sistemas de Tempo Real
tempo de execução de pior caso; inteligência computacional; análise estatística; arquitetura multinúcleo.
Sistemas em tempo real (RTS) são compostos por um conjunto de tarefas (trechos de código) sendo lançadas recorrentemente para serem executadas e devem cumprir prazos. Projetar um sistema desse tipo de forma comprovadamente correta requer informações sobre o tempo de execução no pior caso (WCET) para cada uma de suas tarefas. No entanto, estimar o WCET está se tornando cada vez mais difícil devido à alta complexidade de hardware e software presentes nas plataformas modernas atuais. Isso tem motivado o uso de técnicas para derivar o tempo de execução probabilístico no pior caso (pWCET). A maioria das abordagens existentes se baseia em medir o tempo de execução das tarefas do sistema na plataforma alvo. Como as medições são realizadas durante o tempo de projeto, as amostras coletadas podem levar a estimativas não confiáveis (devido a um possível viés de medição) ou não representativas (devido às dificuldades na reprodução das condições operacionais). A necessidade de tornar as amostras compatíveis com as suposições da modelagem estatística é uma fonte adicional de dificuldade. Dadas as complexidades apresentadas, foram desenvolvidos dois estudos com objetivos distintos. No primeiro estudo, uma representação do tempo de execução é realizada com base em eventos de hardware, considerando diferentes ferramentas de inteligência computacional. Mais especificamente, para um programa sob análise, é mostrado que o tempo de execução T(n) por número n de instruções executadas pode ser correlacionado com ocorrências de eventos relacionados ao hardware. No segundo estudo, uma nova abordagem para análise temporal probabilística baseada em medição (MBPTA) é apresentada. Ao contrário de MBPTA usual, que considera apenas T(n) como a variável de interesse, essa nova abordagem incorpora uma variável de interesse que considera tanto T(n) quanto n. Utilizar tuplas (n, T(n)) para diferentes valores de n possibilita explorar múltiplos caminhos de execução. Além disso, essa nova abordagem permite que o conjunto de medições seja avaliado e aprimorado. Para esse propósito, redes neurais profundas (DNN) são empregadas. Uma vez que as medições são consideradas representativas, é possível estimar limites probabilísticos do tempo de execução. Resultados experimentais indicam uma diferença de até 30% entre as estimativas obtidas com amostras aprimoradas pela abordagem proposta e as amostras não aprimoradas. As abordagens são avaliadas considerando diferentes modelos de arquiteturas e programas, e os resultados obtidos demonstram eficácia nos estudos propostos.