1. O modelo de processos - Notação Comecemos por sumariar a notação tipicamente utilizada durante as aulas teóricas. C D T Γ 1 Γ 1,1 Γ 1,2 0 3 6 9 12 tempo Activação da tarefa Fim da execução da tarefa Prazo de execução relativo da tarefa Figura 1: Ilustração do comportamento temporal das várias instâncias de uma tarefa Podemos ilustrar o comportamento temporal de uma tarefa utilizando uma linha temporal, onde marcamos com caixas a execução de instâncias da tarefa (Γ 1,1, Γ 1,2,...) ao longo do tempo, tal como se encontra na figura 1. As tarefas são designadas pela letra Γ (tau minúsculo, do alfabeto grego). Tipicamente, um sistema terá várias tarefas a funcionar ao mesmo tempo. A cada tarefa é atribuído um número de ordem que a identifica. Assim, cada tarefa é ser designada por Γ i, onde i é o número de ordem da tarefa. Letras minúsculas do alfabeto são também utilizadas para denominar tarefas, em substituição da notação Γ i. Para caracterizar uma tarefa, podemos utilizar um túplo na forma Γ i (C i,d i,t i ), onde: C i D i T i Tempo de execução, no pior caso, da tarefa Γ i (Worst Case Execution Time - WCET). Este tempo deve ser um valor para o tempo máximo que a tarefa demora a executar. Não significa que a tarefa demora sempre este tempo em todas a suas instâncias. Prazo máximo de execução da tarefa Γ i (Deadline Relativo). Este é o tempo limite que a tarefa pode demorar para terminar a execução de uma instância sua. Este tempo é contado relativamente ao tempo de activação da instância tarefa. Período da tarefa Γ i. Ou seja, o tempo entre as chegadas das várias instâncias da tarefa. No caso das tarefas não serem estritamente periódicas, podemos tentar fazer uma aproximação a um modelo periódico utilizando um período que é um tempo mínimo entre chegadas de instâncias das tarefas. Tabela 1: Descrição da notação utilizada (1) Pág. 1/6
Como podemos ver na figura 2, é possível ilustrar o comportamento temporal das várias tarefas utilizando o mesmo tipo de figura apresentado anteriormente. Γ 1 Γ 2 Γ 3 0 5 10 15 t Figura 2: Ilustração do comportamento temporal de um conjunto de tarefas utilizando um mecanismo de escalonamento preemptivo O mecanismo de escalonamento efectua decisões baseado em atributos das tarefas (um atributo tipicamente utilizado para efectuar decisões de escalonamento é o grau de urgência atribuído à tarefa). A mudança entre a execução das tarefas pode ser preemptiva (a execução de uma tarefa pode ser interrompida para que outra seja executada) ou não preemptiva (uma tarefa, depois de iniciar a sua execução, tem de acabar). Na figura 2 podemos ver a execução de um conjunto de três tarefas (Γ 1, Γ 2, Γ 3,) utilizando um mecanismo preemptivo. As tarefas encontram-se ordenadas pelo seu grau de urgência, onde Γ 1 é a tarefa com maior prioridade e Γ 3 é a tarefa de menor prioridade. Para completar o sumário da notação utilizada até agora, podemos acrescentar: I i N ou n Interferência causada à tarefa Γ i por tarefas de prioridade igual ou superior. Número de tarefas no sistema. P i Grau de urgência ou Prioridade da tarefa Γ i. U Utilização da tarefa (igual a C/T) Tabela 2: Descrição da notação utilizada (2) Pág. 2/6
2. Executivo Cíclico Assumindo um conjunto de tarefas puramente periódicas, é possível construir um escalonamento de forma que, a repetida execução deste, fará com que as tarefas executem com a frequência desejada. Essencialmente, o executivo cíclico é uma tabela de chamadas a procedimentos, onde cada procedimento representa o código para uma tarefa (portanto, aqui, a noção de tarefa normalmente utilizada é perdida). A tabela completa é conhecida como o macrociclo de execução. Este macrociclo, encontra-se normalmente dividido em vários microciclos, cada um com uma duração fixa. Por exemplo, quatro microciclos de 10ms podem compor um macrociclo de 40ms. Durante a execução, a cada 10ms será executado sequencialmente cada um dos quatro microciclos. Depois de executados os quatro diferente microciclos (chegamos ao fim do macrocilo), é executado novamente o primeiro e seguidamente todos os outros, a cada 10 ms. Este padrão repete-se infinitamente. A prova de que um sistema que utiliza o executivo cíclico é escalonável é feita por construção. Isto é, se é possível construir um plano do executivo que acomode todas as tarefas, com a periodicidade requerida, então o sistema é escalonável utilizando um executivo cíclico. 2.1 Na tabela seguinte, apresenta-se as características de cinco tarefas Γ 1, Γ 2, Γ 3, Γ 4, Γ 5 : Tarefa C (ms) T (ms) Γ 1 4 10 Γ 2 3 10 Γ 3 2 20 Γ 4 2 20 Γ 5 1 30 Tabela 3: Conjunto de tarefas (1) Construa o plano do executivo para o conjunto de tarefas apresentado. 2.2 Uma abordagem do tipo do executivo cíclico apresenta alguns obstáculos. Apresente brevemente os que lhe parecem mais óbvios. Pág. 3/6
3. Prioridades fixas Uma forma de ultrapassar alguns dos obstáculos do executivo cíclico é utilizar a noção de tarefas existente na maioria dos sistemas operativos, e baseia-se as decisões de escalonamento em um ou mais atributos das tarefas. Um destes atributos poderá ser uma medida do grau de urgência da tarefa a sua prioridade. Assim, podemos basear as nossas decisões de escalonamento na prioridade atribuída a cada tarefa. A prioridade de uma tarefa pode ser fixa a prioridade da tarefa é atribuída na altura da planificação do sistema e mantêm-se sempre igual ao longo do tempo de vida do sistema. Ou pode ser dinâmica, alterando-se ao longo do tempo de vida do sistema conforme outros atributos das tarefas. Durante a execução, o processador é sempre atribuído à tarefa de mais alta prioridade. Por agora, vamo-nos debruçar sobre os mecanismos baseados em prioridades fixas. Utilizando um mecanismo de prioridades fixas, coloca-se a questão de como atribuir prioridades às diversas tarefas. Qual é a atribuição de prioridades que permite uma optimização do escalonamento e consequentemente, uma melhor utilização do sistema? Existem dois métodos de atribuição de prioridades que, pelas suas características, devem ser considerados. Para casos onde o período é igual ao prazo de execução (D=T), utilizamos um método designado de Rate Monotonic (RM). Com este método, as prioridades são atribuídas de acordo com o período das tarefas. A tarefa mais frequente tem a prioridade mais alta. Este método é considerado um método de atribuição de prioridades óptimo, no sentido que, se um conjunto de tarefas é escalonável com uma qualquer atribuição de prioridades fixas, então o conjunto de tarefas é também escalonável utilizando uma atribuição de prioridades segundo RM. Outro método, designa-se por Deadline Monotonic (DM). Este método caracteriza-se por atribuir prioridades mais altas às tarefas com deadline relativo de execução mais baixo. Assim, à tarefa com o menor prazo de execução, é atribuída a prioridade mais alta. Este método é especialmente apropriado quando temos tarefas com um prazo de execução menor que o seu período (D<T). Podemos então verificar que o RM não é mais do que um caso especial do DM. Existe um conjunto de ferramentas de análise analíticas, que permitem avaliar o comportamento de um determinado conjunto de tarefas. Como veremos, estas ferramentas incluem frequentemente um conjunto de restrições à modelação das tarefas. No que se segue resume-se uma desta ferramentas analíticas, baseada numa medida directa do desempenho do sistema a utilização. Pág. 4/6
Uma medida que podemos facilmente retirar de um sistema é a sua utilização. A utilização de um sistema é a fracção de tempo de execução tomada por cada uma das tarefas no sistema. Dividindo o tempo de execução de uma tarefa pelo seu período (C/T), temos a proporção do tempo total que essa tarefa toma. Assim, somando todas as proporções de todas as tarefas, chegamos à utilização do sistema: U = n i= 1 C T i i (1) Onde n é o número total de tarefas no sistema. Prova-se que para um conjunto de tarefas periódicas e independentes, escalonadas de acordo com RM, o sistema será escalonável (quando um sistema cumpre todos os prazos de execução, diz-se um sistema escalonável) se: 1/ n U n(2 1) (2) 1/ n Podemos verificar que, quando n, a expressão n (2 1) aproxima-se de ln 2 0.693. Ou seja, a máxima utilização de um sistema escalonável, utilizando RM, vai diminuindo conforme introduzimos tarefas no sistema. Cuidado, pois esta é uma condição suficiente, mas não necessária. Exercícios Dado o seguinte conjunto de tarefas: Tarefa C (ms) T (ms) D(ms) Γ 1 5 50 20 Γ 2 2 10 5 Γ 3 3 7 5 Tabela 4: Conjunto de tarefas (2) 3.1 Ordene as tarefas por prioridade, de acordo com RM e DM. 3.2 Este conjunto de tarefas é escalonável com RM (utilize a condição baseada na utilização dada anteriormente)? 3.3 Se diminuirmos o período da tarefa Γ 3 de 7 para 6, o que acontece? 3.4 E se aumentarmos o tempo de computação da tarefa Γ 1 de 5 para 7 o que acontece? Pág. 5/6
3.5 Analise de novo a figura 2. Determine os túplos Γ i (C i,d i,t i ) que definem as características das tarefas. Identifique o tipo de atribuição de prioridades ilustrado na mesma figura? 3.6 Desenhe o diagrama temporal, para o pior caso, do conjunto de tarefas apresentado na tabela 4, com a alteração sugerida na alínea 3.3. Chega a alguma conclusão contraditória? Explique. Pág. 6/6