• Nenhum resultado encontrado

3.3 Sistemas em tempo real

3.3.3 Escalonamento de tarefas

U = p X i=1  Ci Ti  ≤ 1 (3.31) Relações de precedência

Em aplicações de tempo real tais como, Sistemas de Controle via Rede (NCSs), a execução de tarefas computacionais e o envio de mensagens não podem ocorrer em ordens arbitrárias. Algu- mas atividades serão iniciadas somente quando outras atividades específicas forem finalizadas, resultando em relações de precedência. Por exemplo, uma mensagem mj é precedida por uma

tarefa τi (τi → mj), se a transmissão de mj puder ocorrer somente após o término da execução

de τi.

Formalmente, as relações de precedência podem ser representadas na forma de um grafo acíclico orientado, onde os círculos correspondem às tarefas e mensagens do sistema, e os arcos descrevem as relações de precedência entre as tarefas e/ou entre as mensagens. Um exemplo das relações de precedência entre duas tarefas e uma mensagem representadas por um grafo acíclico estão ilustradas na Figura 3.7.

Tarefa A

Mensagem B

Tarefa C

Figura 3.7: Representação das relações de precedência entre duas tarefas e uma mensagem.

3.3.3

Escalonamento de tarefas

Em algumas aplicações, o processador (ou algum outro recurso de uma UP) pode ser comparti- lhado por mais de uma tarefa. Consequentemente, é necessário decidir qual tarefa poderá usar o recurso em um determinado instante. Esse processo de decisão é chamado de escalonamento e é realizado pelo escalonador do sistema, que produz uma escala de execução de acordo com uma política de escalonamento. Políticas de escalonamento definem critérios ou regras para a ordenação das tarefas. Os escalonadores, que podem ser classificados em offline e online, usam essas políticas de escalonamento para gerar escalas que se forem realizáveis, garantem o cumprimento dos requisitos de tempo especificados.

Escalonadores

Nos escalonadores offline, todas as decisões de escalonamento são feitas durante a fase de pro- jeto. Um tipo de escalonador offline é o guiado a tempo (XU; PARNAS, 1993). Nesse tipo de escalonador, uma escala de tempo é dividida em partições e essas partições são atribuídas a cada uma das tarefas durante o projeto do sistema. Cada partição possui um intervalo de tempo equivalente ao tempo de execução da respectiva tarefa. Portanto, o instante de execução de cada tarefa é determinado previamente e o tempo de resposta da tarefa pode ser constante.

Nos escalonadores online, as decisões de escalonamento são feitas dinamicamente durante a execução do sistema. O principal tipo de escalonador online é o guiado a prioridades. Nesse tipo, as tarefas são escalonadas de acordo com suas prioridades. Esses escalonadores podem ser classificados como preemptivos e não-preemptivos (GEORGE; RIVIERRE; SPURI, 1996). No escalonamento preemptivo, as tarefas com maior prioridade podem suspender a execução de tarefas com menor prioridade. No escalonamento não-preemptivo, uma tarefa não pode ser suspendida durante sua execução. Um diagrama de tempo representando a execução de duas tarefas (X e Y) em uma UP sob escalonamento preemptivo e não-preemptivo está ilustrado na Figura 3.8. Os tempos de computação das tarefas X e Y são constantes e iguais a 3 e 5 unidades de tempo, respectivamente. A tarefa X possui maior prioridade e é ativada e liberada no instante 2, enquanto que a tarefa Y é ativada e liberada no instante 1. Isso significa que o jitterde liberação das tarefas é igual a zero. No caso preemptivo, a tarefa Y inicia sua execução no instante 1 e no instante 2 é suspendida por X, que segue executando até o instante 5, onde finaliza sua execução. Nesse mesmo instante, a tarefa Y re-inicia a execução, que é finalizada no instante 9. No caso não-preemptivo, a tarefa X (maior prioridade) não suspende a execução da tarefa Y, que é finalizada no instante 6. Imediatamente, a tarefa X inicia sua execução e finaliza após 3 unidades de tempo. O tempo de resposta das tarefas sob escalonamento online é variável de forma limitada.

2 4 6 8 10 t Tarefa X Tarefa Y 2 4 6 8 10 t Preemptivo Não-preemptivo Preempção Computação Ativação Liberação

Figura 3.8: Representação da execução de tarefas em um processador sob escalonamento pre- emptivo e não-preemptivo.

Outros tipos de escalonadores online bem simples são o FIFO (First-In First-Out) e o Round-Robin (TANENBAUM; WOODHULL, 1997). Nesses escalonadores, as tarefas são execu-

tadas de acordo com a ordem de chegada. Escalonadores FIFO são não-preemptivos e basica- mente são implementados por meio de uma fila organizada por ordem de chegada das tarefas. A primeira tarefa da fila inicia a sua execução até finalizar as suas computações. Após a fi- nalização, a próxima tarefa da fila entrará em execução, e assim por diante. Escalonadores Round-Robin são a versão preemptiva dos escalonadores FIFO. Nesse escalonador, as tarefas são escalonadas em uma sequência FIFO, mas cada tarefa pode executar apenas por uma quan- tidade de tempo limitada, chamada de time slice ou quantum. Após a execução do seu quantum, a tarefa é suspendida e a próxima tarefa da fila inicia a sua execução. A tarefa suspendida será colocada no fim da fila, caso não tenha finalizado as suas computações. Neste trabalho será usado apenas escalonadores online.

Políticas de escalonamento

No escalonamento online guiados a prioridade, a prioridade de cada tarefa é definida de acordo com uma política de atribuição, que pode ser estática (prioridades fixas) tais como, taxa monotô- nica (LIU; LAYLAND, 1973) e deadline monotônico (LEUNG; WHITEHEAD, 1982), ou dinâmica (prioridades variáveis), por exemplo, EDF (Earliest Deadline First) (LIU; LAYLAND, 1973). Políticas de escalonamento com prioridades fixas são fáceis de implementar, enquanto que po- líticas de escalonamento com prioridades variáveis são melhores teoricamente e de complexa implementação (GEORGE; RIVIERRE; SPURI, 1996).

Na política taxa monotônica, as prioridades das tarefas são atribuídas de acordo com os va- lores dos seus períodos. Quanto maior o período menor será a prioridade. Na política deadline monotônico, as prioridades das tarefas são atribuídas de acordo com os valores dos seus dea- dlines. A tarefa com menor deadline possui maior prioridade, enquanto que a tarefa com maior deadlinepossui menor prioridade. Na política EDF, as prioridades das tarefas são atribuídas de acordo com o tempo restante para atingir seus deadlines. Quanto menor for esse tempo maior será a sua prioridade. Desse modo, as prioridades são alteradas dinamicamente durante a execução do sistema.

Testes de escalonabilidade

No escalonamento online uma análise ou teste de escalonabilidade deve ser usada para determi- nar se o conjunto de tarefas do sistema é escalonável, ou seja, se os deadlines serão satisfeitos. Os testes variam de acordo com o modelo de tarefas e políticas definidas em um problema de escalonamento, e podem ser classificados em necessários, suficientes e exatos.

Testes necessários determinam com precisão se um conjunto de tarefas é não-escalonável. As tarefas que passaram no teste podem ser escalonáveis. Nos testes suficientes, o conjunto de tarefas que passaram no teste são escalonáveis. No entanto, é possível que existam tarefas

escalonáveis dentro do conjunto de tarefas que não passaram no teste. Enquanto que testes exatos determinam precisamente os conjuntos de tarefas escalonáveis e não-escalonáveis.

Existem três diferentes abordagens para testes de escalonabilidade: testes baseados na uti- lização; testes baseados na demanda e testes baseados nos tempos de resposta. A primeira abordagem usa o fator de utilização do recurso compartilhado pelo conjunto de tarefas (LIU; LAYLAND, 1973) e (LEHOCZKY, 1990). A segunda abordagem é baseada na demanda do pro- cessador em um determinado intervalo de tempo (BARUAH; ROSIER; HOWELL, 1990) e (GEORGE; RIVIERRE; SPURI, 1996). A última abordagem é baseada no cálculo do tempo de resposta no pior caso para cada uma das tarefas do conjunto (JOSEPH; PANDYA, 1986) e (AUDSLEY et al., 1993). Os testes baseados nos tempos de resposta são mais usados, pois determinam os limites supe- riores e inferiores dos atrasos de cada tarefa do sistema. Se esses limites não são maiores que os respectivos deadlines de cada tarefa, o sistema é escalonável. Além disso, essa abordagem pode ser usada para tarefas com deadlines maiores que o período (deadlines arbitrários), ta- refas esporádicas e tarefas dependentes (LIMA, 2003). Nas tarefas dependentes há relações de precedência e/ou compartilhamento de recursos. Enquanto que tarefas independentes não há qualquer tipo de relação.