Departamento de Engenharia Informática Licenciatura em Engenharia Informática – Computadores e Sistemas Sistemas de Tempo Real Guia (Aula 5) – Análise de resposta temporal para prioridades fixas em sistemas não preemptivos. 1. Análise de resposta temporal para sistemas não preemptivos Como vimos, a expressão base para a análise de resposta temporal para prioridade fixas é: Ri = Ci + Ii (1) Podemos adaptar a formulação da análise de resposta temporal para prioridades fixas em sistemas preemptivos, para sistemas não preemptivos. Num sistema não preemptivo, o pior caso ocorre quando todas as tarefas de prioridade superior são lançadas ao mesmo tempo, e a tarefa de prioridade inferior com maior tempo de execução é activada um instante antes (portanto, já está a ser executada). Neste caso, a tarefa tem de esperar que a tarefa de prioridade inferior acabe. Este fenómeno é designado bloqueio. O bloqueio é expresso, relativamente a cada uma das tarefas, como o tempo de execução máximo das tarefas de prioridade inferior: Bi = max C j j∈lp ( i ) (2) Apesar de, num sistema não preemptivo, não existir a interferência causada pela interrupção das tarefas, continuamos a ter (no pior caso) tarefas de prioridade superior que devem executar em primeiro lugar. Desta forma, podemos dizer que continuamos a ter interferência causada por tarefas de prioridade superior. Seguindo esta abordagem, podemos dizer que o bloqueio é um componente da interferência e adicionar o bloqueio à interferência. Consequentemente, encontramos o pior tempo de interferência utilizando a expressão recorrente: I n +1 i ⎡ I in ⎤ = Bi + ∑ ⎢ ⎥C j j∈hp (i ) ⎢ T j ⎥ (3) O valor inicial para a recorrência deve ser zero para todas as tarefas, excepto para a tarefa de menor prioridade, onde se deve começar com a soma dos tempos de execução de todas as tarefas de prioridade superior. Pág. 1/2 Departamento de Engenharia Informática Licenciatura em Engenharia Informática – Computadores e Sistemas Sistemas de Tempo Real Guia (Aula 5) – Análise de resposta temporal para prioridades fixas em sistemas não preemptivos. 2. Escalonador de prioridades fixas preemptivo, com FIFO dentro das prioridades Uma forma de ultrapassar o problema de existir poucas prioridades no sistema alvo é atribuir a mesma prioridade a várias tarefas. Nesta situação, a forma mais comum de escalonar tarefas com prioridades iguais é servir as tarefas pela sua ordem de activação, de uma forma não preemptiva. A formulação da análise de resposta temporal pode também ser alterada para se adaptar a estes casos. Para isso, à expressão de prioridades fixas para sistemas preemptivos, adicionamos o bloqueio causado pelas tarefas de prioridade igual: Rin +1 = Bi + Ci + ⎡ Rin ⎤ ∑ ⎢ ⎥C j j ∈hp (i ) ⎢ T j ⎥ (4) Aqui, o bloqueio (Bi), deve contemplar a situação onde a tarefa i foi a última da sua prioridade a chegar: Bi = ∑C j j∈ep ( i ) ∧ j ≠ i (5) Note que, j ∈ ep(i) e j≠i Pág. 2/2