Qual o propósito dos trabalhos na área de tempo real ?

Uma aplicação com requisitos temporais pode ser comparada a uma “prova de rally” ou uma “gincana”. Em um dado momento, uma atividade deve ser liberada, com uma certa missão, e deve ser concluída até um dado instante de tempo. Para acontecer, essa atividade precisa de recursos, pode ser dividida em sub-atividades, com algumas partes necessariamente seqüênciais, outras podendo ser realizadas em paralelo, estabelecendo relações de precedência internas. Várias sub-atividades podem apresentar relações de exclusão mútua por conta de recursos comuns que necessitam (por exemplo, o processador, uma estrutura de dados, etc).
 
Se nada atrapalhasse essa atividade, uma vez definida as suas disputas internas, seria fácil determinar o caminho crítico e o tempo máximo até a sua conclusão (tempo máximo de resposta). Este tempo teria que incorporar os não determinismos nos tempos de execução de cada sub-atividade, causados por caches, desvios de fluxo, etc. O tempo máximo de resposta da atividade deve necessariamente refletir os não determinismos dos tempos das sub-atividades, que não puderem ser eliminados (por exemplo, desativando a cache).
 
Ocorre que, muitas vezes, diversas atividades executam simultaneamente e elas atrapalham-se mutuamente. É muito difícil impedir que uma atividade atrapalhe outra atividade em função da exclusão mútua necessária com respeito a determinados recursos. No caso de múltiplas atividades, alguma sempre vai ser atrapalhada.
 
O que pode ser feito então?
 
Calcular a atrapalhação possível no sistema permite previsibilidade, isto é, antecipar o comportamento da aplicação no tempo. Para tanto, é necessário modelar como a atrapalhação acontece, possibilitando dessa forma uma análise quantitativa.
 
Por outro lado, pode-se construir sistemas onde existam mecanismos claros que controlem “quem atrapalha quem e quando”. De posse de mecanismos de controle completos sobre a divisão de recursos é possível implementar políticas sobre como a atrapalhação deve acontecer. Sem mecanismos eficazes de gestão da atrapalhação, não adianta estabelecer políticas de privilégio, pois não haverá como realizá-las, isto é, implementá-las no sistema.
 
Em resumo, os trabalhos na área de tempo real podem ser a grosso modo classificados em
  • trabalhos de análise (identificar e quantificar o efeito das fontes de atrapalhação)
  • e trabalhos de síntese (criar mecanismos de gerência, políticas de divisão de recursos).