Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS DE TEMPO REAL AULA 7 – ESCALONAMENTO (2) Prof.: Danilo Coimbra (danilo.dcc.ufba@gmail.com) (coimbra.danilo@ufba.br) 1 Sumário ! Testes de Escalonabilidade ! Utilização de Tarefa ! Instante Crítico ! Escalonamento de Tarefas Periódicas ! Escalonamento Taxa Monotônica ! Escalonamento Deadline Monotônico 2 Testes de Escalonabilidade ! São testes que auxiliam no escalonamento de tarefas de tempo real, determinando se são tarefas escalonáveis ou não ! Se existe para esse conjunto de tarefas escalonamento realizável ou não ! Podem ser feitos offline (previamente) e online (em tempo de execução do sistema) ! Variam conforme os modelos de tarefas e políticas definidas em um problema de escalonamento 3 Testes de Escalonabilidade ! Normalmente, correspondem a análises de pior caso de certas classes de problemas ! Tipicamente, são utilizados três tipos de teste offline ! Testes exatos ! Testes suficientes ! Testes necessários 4 Testes de Escalonabilidade Testes Exatos ! São análises que não afastam conjuntos de tarefas que apresentam escalas realizáveis ! São precisos, pois identificam também conjuntos não escalonáveis ! Em muitos problemas são impraticáveis os testes exatos ! Podem ser muito complexos 5 Testes de Escalonabilidade Testes Suficientes ! Um teste suficiente de escalonabilidade positivo ! garante que o conjunto de tarefas é sempre escalonável ! São mais simples na execução, porém apresentam o custo do descarte de conjuntos de tarefas escalonáveis ! É um teste mais restritivo onde conjuntos de tarefas aceitos nesses testes certamente são escalonáveis ! porém entre os descartados podem existir conjuntos escalonáveis 6 Testes de Escalonabilidade Testes Necessários ! Um teste necessário de escalonabilidade negativo ! garante que o conjunto de tarefas é sempre não escalonável ! Correspondem também a análises simples porém não tão restritivas ! O fato de um conjunto ter passado por um teste necessário não implica que o mesmo seja escalonável ! Única garantia: mostrar que os conjuntos descartados de tarefas certamente são não escalonáveis 7 Testes de Escalonabilidade 8 ! Tipos de teste de Escalonabilidade Testes de Escalonabilidade 9 ! Verificação online da escalonabilidade de um sistema ! Teste para a aceitação/rejeição da inclusão de uma nova tarefa num conjunto de tarefas previamente escalonável ! Este tipo de testes deve ter complexidade menor, pois existe o risco de rejeição de tarefas potencialmente escalonáveis Utilização de Tarefa 10 ! A utilização de uma tarefa Ti serve como uma medida da ocupação do processador pela mesma, é dado por: ! onde Ci , Pi e Mini são respectivamente o tempo máximo de computação, o período e o intervalo mínimo entre requisições da tarefa Ti Utilização de Tarefa 11 ! A utilização de um processador (U ) dá a medida da ocupação do mesmo por um conjunto de tarefas { T1 , T2 , T3 , ..., Tn }: ! O conceito de utilização serve de base para testes simples e bastante usados Utilização de Tarefa 12 ! A ideia central nesses testes é que a soma dos fatores de utilização (Ui ) das tarefas do conjunto não ultrapasse o número de processadores disponíveis para suas execuções: ! onde m é o número de processadores ! Testes baseados na utilização podem ser exatos, necessários ou suficientes, dependendo da política usada e do modelo de tarefas assumido Exemplos de Escalonamento 13 Exemplo: Quatro cenários/exemplos de escalonamento ! 1. Escalonamento preemptivo, com primeiros pedidos de execução arbitrariamente defasados ! 2. Escalonamento preemptivo, com simultaneidade nos primeiros pedidos de execução ! 3. Escalonamento não-preemptivo, com simultaneidade nos primeiros pedidos de execução ! 4. Escalonamento não-preemptivo com ativação de tarefa de menor prioridade imediatamente anterior à ativação simultânea de todas as outras tarefas Exemplos de Escalonamento 14 ! Cenário 1: -Tarefas Periódicas: τ={Ci, Ti, di}; U=90,3% -Escalonamento preemptivo por prioridades -Atribuição de prioridades às tarefas (?) -1os pedidos de execução defasados Exemplos de Escalonamento 15 ! Cenário 2: -Tarefas Periódicas: τ={Ci, Ti, di}; U=90,3% -Escalonamento preemptivo por prioridades -Atribuição de prioridades às tarefas (?) -1os pedidos de execução simultâneos Exemplos de Escalonamento 16 ! Cenário 3: -Tarefas Periódicas: τ={Ci, Ti, di}; U=90,3% -Escalonamento não-preemptivo por prioridades -Atribuição de prioridades às tarefas (?) -1os pedidos de execução simultâneos Exemplos de Escalonamento 17 ! Cenário 4: -Tarefas Periódicas: τ={Ci, Ti, di}; U=90,3% -Escalonamento não-preemptivo por prioridades -Atribuição de prioridades às tarefas (?) -1o pedido de execução de uma tarefa de menor prioridade imediatamente anterior à ativação simultânea de todas as outras tarefas Instante Crítico 18 ! Num sistema com escalonamento preemptivo, a ativação simultânea de todas as tarefas (instante crítico) tem como consequência: ! em termos de utilização, um período de carga máxima do processador ! em termos de tempo de resposta, um intervalo de tempo (intervalo crítico) durante o qual o tempo de resposta é máximo para cada uma das ativações das tarefas ! Num sistema com escalonamento não-preemptivo ! É definido como a ativação da tarefa de maior duração (efeito de bloqueio) imediatamente antes da ativação simultânea de todas as outras tarefas Escalonamento de Tarefas Periódicas 19 ! Se considerarmos aplicações de tempo real de uma maneira geral, as atividades envolvidas nessas aplicações se caracterizam basicamente pelo comportamento periódico de suas ações ! As características de tarefas periódicas determinam o conhecimento a priori dos tempos de chegada e, por consequência, da carga computacional do sistema ! Permitindo obter garantias em tempo de projeto sobre a escalonabilidade de um conjunto de tarefas periódicas Escalonamento de Tarefas Periódicas 20 ! Será abordado somente tarefas dirigida a prioridades ! Prioridades atribuídas às tarefas estudadas são derivadas de suas restrições temporais ! e não de atributos outros como a importância ou o grau de confiabilidade das tarefas ! Escalonamentos baseados em prioridades geralmente apresentarem melhor desempenho e flexibilidade Escalonamento Taxa Monotônica (Rate Monotonic - RM) 21 ! Produz escalas em tempo de execução através de escalonadores preemptivos, dirigidos a prioridades ! É um algoritmo ótimo de escalonamento de prioridade fixa ! nenhum outro algoritmo da mesma classe pode escalonar um conjunto de tarefas que não seja escalonável pelo RM Escalonamento Taxa Monotônica (Rate Monotonic - RM) 22 ! As premissas do RM que facilitam as análises de escalonabilidade, definem um modelo de tarefas bastante simples: ! a) As tarefas são periódicas e independentes (não tem relações de precedência) ! b) O deadline de cada tarefa coincide com o seu período (Di = Pi ) ! c) O tempo de computação (Ci ) de cada tarefa é conhecido e constante (“Worst Case Computation Time”- tempo máximo de execução ) ! d) O tempo de chaveamento entre tarefas é assumido como nulo Escalonamento Taxa Monotônica (Rate Monotonic - RM) 23 ! Atribuição de prioridades ! As prioridades decrescem em função do aumento dos períodos, ou seja, quanto mais frequente a tarefa maior a sua prioridade no conjuntoPTi < PTj => Pri > Prj Onde PT = período da tarefa i, j e Pr = prioridade da tarefa i ou j ! Como os períodos das tarefas não mudam, o RM define uma atribuição estática de prioridades (prioridade fixa) Escalonamento Taxa Monotônica (Rate Monotonic - RM) 24 Análise de Escalonabilidade do RM ! Baseada no cáculo de utilização ! Teste suficiente de escalonabilidade ! Feito para que n tarefas tenham suas restrições temporais atendidas quando escalonadas pelo RM ou Escalonamento Taxa Monotônica (Rate Monotonic - RM) 25 ! Exemplo de teste de escalabilidade ! Taxa de utilização do processador ! U= ( UTA+UTB+UTC ) = 0.2+0.267+0.286=0.753 ! Teste suficiente (n = quantidade de tarefas = 3) Escalonamento Taxa Monotônica (Rate Monotonic - RM) 26 ! Exemplo: escalanomento RM (diagrama de Gantt) (1/3) ! Tarefas A, B e C chegam em t=0 ! Por ser mais frequente (maior prioridade segundo o RM), A assume o processador. Escalonamento Taxa Monotônica (Rate Monotonic - RM) 27 ! Exemplo: escalanomento RM (diagrama de Gantt) (1/3) ! Em t=20, a tarefa A conclui e B toma posse do processador por ser a mais prioritária na fila de Pronto ! A tarefa C assume em t=60 e é interrompida quando chega a nova ativação de A em t=100 20 40 40 Escalonamento Taxa Monotônica (Rate Monotonic - RM) 28 ! Exemplo: escalanomento RM (diagrama de Gantt) (1/3) ! A passa a se executar (preempção de C por A) ! C sofre mais interrupções de novas ativações das tarefas B em t=150 e A em t=200, ... 20 40 40 20 30 (70) 40 10(80) 20 20 (100) Escalonamento Taxa Monotônica (Rate Monotonic - RM) 29 ! Três cenários utilizando o algoritmo de RM ! considera conjuntos de tarefas com diferentes taxas de ativação (P) 1)Teste de escalonabilidade é respeitado ! conjunto de tarefas é sempre escalonável 2)Teste de escalonabilidade não é respeitado ! No entanto, após o instante crítico, a meta temporal da tarefa de menor prioridade é respeitada (o conjunto de tarefas é sempre escalonável) 3)Teste de escalonabilidade não é respeitado, nem a meta temporal da tarefa de menor prioridade (após o instante crítico) ! conjunto de tarefas não é escalonável Escalonamento Taxa Monotônica (Rate Monotonic - RM) 30 ! Cenário 1 (T = P) tarefas periódicas: τ={Ci, Ti}; di=Ti ; U=77,5% -data de ativação das tarefas simultânea -escalonamento sempre realizável teste suficiente de escalonabilidade respeitado C T Escalonamento Taxa Monotônica (Rate Monotonic - RM) 31 ! Cenário 2 (T = P) tarefas periódicas: τ={Ci, Ti}; di=Ti ; U=87,5% -data de ativação das tarefas simultânea -escalonamento sempre realizável teste suficiente de escalonabilidade não é respeitado no entanto, a meta temporal da tarefa t3 é respeitada após o instante crítico, logo o conjunto de tarefas é sempre escalonável C T Escalonamento Taxa Monotônica (Rate Monotonic - RM) 32 ! Cenário 3 (T = P) tarefas periódicas: τ={Ci, Ti}; di=Ti ; U=96,3% -data de ativação das tarefas simultânea -escalonamento não é realizável teste suficiente de escalonabilidade não é respeitado meta temporal da tarefa t3 não é respeitada após o instante crítico C T Escalonamento Taxa Monotônica (Rate Monotonic - RM) 33 ! Vantagens do algoritmo RM ! Simplicidade ! Adequado para utilização em sistemas operacionais existentes ! Pode ser utilizado para a atribuição de prioridades a níveis de interrupção ! Se a meta temporal da tarefa de menor prioridade for respeitada após um instante crítico, então o conjunto de tarefas é sempre escalonável Escalonamento Taxa Monotônica (Rate Monotonic - RM) 34 ! Desvantagens do algoritmo RM ! Modelo de tarefas muito limitado ! Não adequado quando se têm metas temporais inferiores ao período ! Não suporta exclusão mútua no acesso a recursos partilhados Deadline Monotônico (DM) 35 Algoritmo Taxa Monotônica ! Limitação do algoritmo RM: ! A cada tarefa é atribuída uma prioridade proporcional à sua cadência de ativação (P ou T: período) ! No entanto, a importância de uma tarefa pode ser independente da sua cadência de ativação (por ex.: leitura de temperatura) ! Existem outros parâmetros temporais que podem ser considerados Deadline Monotônico 36 ! Algoritmo de atribuição de prioridades a um conjunto de tarefas periódicas, independentes e com metas temporais menores ou iguais ao respectivo período ! (di ≤ Ti ) ! A atribuição de prioridades às tarefas é efetuada na ordem inversa do valor da sua meta temporal (d): ! menor meta temporal: maior prioridade ! maior meta temporal: menor prioridade " situações de empate serão resolvidas arbitrariamente Deadline Monotônico 37 ! A política do DM define uma atribuição estática de prioridades, baseada nos deadlines relativos das tarefas (Di) ! A produção da escala é feita em tempo de execução por escalonador preemptivo dirigido a prioridades ! O esquema de prioridades fixas do DM também define um escalonamento estático e online Deadline Monotônico 38 ! Exemplo (diagrama de Gantt) A Deadline Monotônico 39 Exemplos de dois escalonamento por prioridades fixas (idêntico conjunto de tarefas): ! Prioridades atribuídas segundo o algoritmo DM (tarefas ordenadas por valor de meta temporal crescente): ! verifica-se que o conjunto de tarefas é sempre escalonavel ! Prioridades atribuídas segundo o algoritmo RM (tarefas ordenadas por periodicidade crescente): ! verifica-se que o conjunto de tarefas não é escalonável Deadline Monotônico 40 ! Cenário 1: conjunto de tarefas ordenado por metas temporais crescentes C T d deadline ativação Deadline Monotônico 41 ! Cenário 2: conjunto de tarefas ordenados por períodos crescentes (RM) C T d Deadline Monotônico 42 ! Cenário 2: Conclusão ! Por simples inspeção da figura anterior, verifica-se que o conjunto de tarefas não é escalonável quando se utiliza o algoritmo RM ! O algoritmo RM é um algoritmo que não é ótimo quando se consideram conjuntos de tarefas com metas temporais inferiores aos períodos ! Para este tipo de conjunto de tarefas (d<T), a atribuição dos níveis de prioridade deverá ser efetuada utilizando o algoritmo DM (algoritmo ótimo) Deadline Monotônico 43 ! Vantagens do algoritmo DM ! Simples e adequado para utilização em sistemas operacionais existentes ! Pode ser utilizado para a atribuição de prioridades a níveis de interrupção ! Admite tarefas com metas temporais inferiores ao período ! Desvantagens do algoritmo DM ! Modelo de tarefas também muito limitado ! Não suporta exclusão mútua no acesso a recursos partilhados Exercícios 1) Quais os testes offline que compõem os testes de escalonabilidade? 2) Calcule a porcentagem de utilização das 3 tarefas e diga se são escalonáveis. Tarefa (tempoComputação, deadline, Período) T1 (3,5,20), T2 (3,7,15), T3(5,10,15) 3) Explique o que é Instante Crítico. 4) Quais as vantages e desvantagens do algoritmo de escalonamento Taxa Monotônica. 5) Quais as vantages e desvantagens do algoritmo de escalonamento Deadline Monotônico. 6) Se caso o sistema de Tempo Real possuir deadlines inferiores aos Períodos de ativação de instâncias das tarefas, qual a abordagem mais adequada, Taxa Monotônica ou Deadline Monotônico? Por quê? 7) Considere as 3 tarefas do exerc.2. Elassão escalonáveis usando o deadline monotômico? 44 Referências ! Cheng, Albert MK. Real-time systems: scheduling, analysis, and verification. John Wiley & Sons, 2003. ! Jane W. S. W. Liu. 2000. Real-Time Systems (1st ed.). Prentice Hall PTR, Upper Saddle River, NJ, USA. ! Vasques, F. Notas de curso realizado em Agosto de 2006 na Universidade Federal do Rio Grande do Norte (UFRN). ! Farines, J. M., Fraga, J. D. S., & Oliveira, R. D. Sistemas de tempo real. Escola de Computação, 2000. 45
Compartilhar