Escalonamento com Garanta Executvo íclco Sstemas de Tempo Real: Escalonamento com Garanta Rômulo Slva de Olvera Departamento de Automação e Sstemas - DAS UFS rordades + Teste de Escalonabldade rordades Varáves com Teste de Escalonabldade rordades Fxas com Teste de Escalonabldade romulo@das.ufsc.br http://www.das.ufsc.br/~romulo Executvo íclco Introdução Também chamado de Tme-drven scheduler ou lock-drven scheduler Indcado para tarefas com deadlne hard Indcado para tarefas peródcas arâmetros das tarefas precsam ser conhecdos a pror arâmetros das tarefas não mudam durante a execução Tabela descrevendo a escala de execução é crada no projeto Durante a execução esta escala é repetda cclcamente Garanta da escalonabldade está na nspeção da tabela Se todos os deadlnes são cumprdos, sstema é escalonável É a forma tradconal de mplementar sstemas de tempo real crítcos Tem a vantagem de ser completamente determnístco Executvo íclco Introdução O desgn do software é concorrente A mplementação pode ser através de Um conjunto de procedmentos rocedmentos são mapeados sobre um conjunto de cclos menores (mnor cycles) que formam juntos a escala completa ou cclo maor (major cycle) O clo Menor determna o mínmo cclo de tempo possível O clo Maor determna o máxmo cclo de tempo possível É alocado tempo para o WET de cada tarefa a cada período dela ão exste preempção (exclusão mútua assegurada) Executvo íclco Solução lássca Toda a sequênca de execução é repedda a cada Major ycle (clo Maor) Todas as execuções de clo Maor são guas O clo Maor é dvddo em uma sequênca de Mnor ycles (clo Menor) clos Menores podem ser dferentes entre s Interrupção do Tmer ndca níco de cada clo Menor Decsões de escalonamento somente no níco de cada clo Menor Executvo íclco Solução lássca Duração do clo Maor ndca nstante no tempo equvalente ao nstante ncal da tabela É possível voltar ao níco da tabela e repetr tudo novamente Valor natural para a duração do clo Maor (L): Mínmo Múltplo omum dos períodos das tarefas Interrupção Interrupção Interrupção Interrupção clo Maor clo Menor 5 6
Executvo íclco Solução lássca clo menor (f) precsa ser longo o sufcente para permtr que todos os jobs termnem sua execução dentro dele Evta preempções Evta chaveamento de contexto f Max ( ) Fornece exclusão mútua n onvenente que todos os períodos de tarefa sejam números múltplos da duração do clo Menor (f) Interrupção do tmer a cada clo Menor = Város jobs podem ser executados dentro de um mesmo clo Menor f f Executvo íclco Exemplo Tarefa T eríodo Tempo de computação 5 5 8 5 5 T 5 T5 Mímmo múltplo comum dos períodos = Máxmo dvsor comum dos períodos = 5 7 8 Executvo íclco Exemplo Whle( true ) { wat_for_nterrupt; funcao_t(); funcao_t(); funcao_t(); wat_for_nterrupt; funcao_t(); funcao_t(); funcao_t(); funcao_t5(); wat_for_nterrupt; funcao_t(); funcao_t(); funcao_t(); wat_for_nterrupt; funcao_t(); funcao_t(); funcao_t(); } Executvo íclco Exemplo Tarefa T eríodo Tempo de computação 5 5 8 5 5 T 5 T5 Interrupção Interrupção Interrupção Interrupção T T5 T 9 5 Executvo íclco Solução lássca Executvo íclco omentáros Tabela ndca que tarefas fazem parte de cada clo Menor ara toda a duração do clo Maor Exstem conjuntos de tarefas para os quas é mpossível aplcar a solução clássca ecessáro adaptar as tarefas Tarefas aperódcas podem ser executadas dentro de cada clo Menor depos que todas os jobs garantdos alocados àquele clo Menor já foram concluídos Executam até a próxma nterrupção do tmer (novo clo Menor) Overhead de escalonamento no níco de cada clo Menor Se ocorreu overrun do clo Menor anteror, ação é necessára Job nterrompdo era aperódca não garantda Smplesmente preempta o job Job nterrompdo era peródco garantdo mas não crítco reempta o job, snalza ocorrênca de uma falta temporal Job nterrompdo era peródco garantdo e crítco Grave falta temporal ontnua executando este job para garantr consstênca dos dados - Espera que folga do próxmo clo Menor resolva o problema Dspara tratamento de exceção, pânco
Executvo íclco omentáros ode ser desenvolvdo a mão sem nenhum método especal o caso de sstemas pequenos/smples Dado que a tabela de execução é construída em projeto Algortmos complexos também podem ser usados Trata-se de um problema de otmzação com complexdade exponencal Soluções ótmas são possíves até um certo tamanho de sstema ara sstemas grandes são usadas heurístcas (sub-ótmas) Uso de meta-heurístcas é popular (busca tabu, genétco, smulated annealng) Objetvos secundáros podem exstr Dstrbur as folgas unformemente para favorecer aperódcas Reduzr jtter de saída das tarefas Executvo íclco omentáros a verdade nenhum processo precsa realmente exstr em tempo de execução ada clo Menor pode ser apenas uma sequênca de chamadas de subrotnas As subrotnas podem compartlhar um espaço de endereçamento comum odem passar dados entre eles Esses dados não precsam ser protegdos (va um semáforo, por exemplo) porque o acesso concorrente não é possível Todos os períodos das tarefas devem ser múltplos do tempo de cclo menor Executvo íclco omentáros Dfculdade em ncorporar processos com períodos longos Atvdades esporádcas são dfíces (as vezes mpossíves) de serem ncorporadas O executvo cíclco é dfícl de construr e manter é um problema -hard Qualquer tarefa com tempo de computação maor precsará ser dvddo em um número fxo de procedmentos com tamanho medano Isto pode prejudcar a estrutura do códgo, sendo mas sujeto a bugs Métodos mas flexíves de escalonamento são dfíces de suportar a realdade, Determnsmo da escala de execução não é necessáro necssáro é prevsbldade quanto ao cumprmento dos deadlnes Escalonamento com Garanta Executvo íclco rordades + Teste de Escalonabldade rordades Varáves com Teste de Escalonabldade rordades Fxas com Teste de Escalonabldade 5 6 rordades Varáves Introdução ada tarefa recebe uma prordade que vara ao longo do tempo rordade leva em conta nformações relatvas à execução Dferentes jobs da mesma tarefa podem receber prordades dferentes ada Job em partcular pode receber prordade fxa ou varável A escala de execução só é conhecda durante a execução ecsssáro Teste de Escalonabldade ara saber antes se todos os deadlnes estão garantdos ou não Exstem três tpos prncpas de testes de escalonabldade Baseados na taxa de utlzação do U Baseados na carga mposta ao U (processor demand) Baseados no tempo de resposta rordades Varáves - Introdução EDF Earlest Deadlne Frst Inversamente proporconal ao deadlne absoluto Ótmo em relação aos crtéros de prordades varáves LSF (LST ou LLF) Least Slack Frst Inversamente proporconal ao tempo lvre (laxty ou slack) Ótmo em relação aos crtéros de prordades varáves Overhead maor que EDF FFS Frst ome Frst Served Inversamente proporconal ao tempo de espera por servço ão é ótmo com respeto ao cumprmento de deadlnes EDF é o mas usado 7 8
rordades Varáves Teste para EDF rordades Varáves Teste para EDF Supondo um conjunto de n tarefas ndependentes e peródcas EDF como polítca de atrbução de prordades Se D=T, sstema é escalonável quando: ermte usar % do processador mantendo os deadlnes Teste exato = ( ) Exstem testes de escalonabldade mas complexos para EDF São menos pessmstas orém requerem esforço computaconal maor Se D<T, sstema é escalonável quando: Teste sufcente = ( ) D ara D arbtráro, sstema é escalonável quando: Teste sufcente = ( mn( ) D, ) 9 Least Slack Frst - LSF rordades Varáves LSF Quanto menos tempo lvre (slack), maor a prordade Ótmo quando EDF é ótmo rordade das tarefas na fla de aptos aumenta com passar do tempo rordade da tarefa em execução mantém-se constante Gera número maor de chaveamento de contextos que EDF maor overhead ão apresenta vantagens face a EDF EDF: As prordades de todas as tarefas aptas e em execução aumentam - de gual modo com o passar do tempo rordades Varáves omentáros Implementação é mas complexa do que com prordade fxa requer um kernel que aceta prordades varáves Overhead de execução pode ser elevado caso seja necessára reordenação dnâmca da fla de aptos (depende do algortmo) Instabldade face a sobrecargas ão é possível saber antecpadamente quas tarefas vão perder deadlne Escalonabldade é superor em EDF do que em prordade fxa Qualquer sstema escalonável com prordade fxa também será escalonável com EDF O contráro não é verdadero Entretanto, prordade fxa é mas usado na prátca Exemplo escalonabldade: EDF versus RM Exemplo sobrecarga: EDF versus RM tarefas peródcas D tarefa A tarefa B 5 5 5 A,B A A B tarefa A - tarefa B - : = =D= : = =D= : = =D=8 Execução normal com EDF U n = =. [] 5 6 (a) Escalonamento EDF t A,B A A B perda de deadlne de B 5 6 t (b) Escalonamento RM Fgura.6: Escalas produzdas pelo (a) EDF e (b) RM 5 6 7 8 9 5 6
: = =D= : = =D= : = =D=8 Sobrecarga devdo a falha do projeto com EDF Exemplo sobrecarga: EDF versus RM : = =D= : = =D= : = =D=8 Execução normal com RM Exemplo sobrecarga: EDF versus RM 5 6 7 8 9 5 6 5 5 6 7 8 9 5 6 6 : = =D= : = =D= : = =D=8 Sobrecarga devdo a falha do projeto com RM Exemplo sobrecarga: EDF versus RM Executvo íclco rordades + Teste de Escalonabldade Escalonamento com Garanta rordades Varáves com Teste de Escalonabldade rordades Fxas com Teste de Escalonabldade?? 5 6 7 8 9 5 6 7 8 Escalonamento Baseado em rordades Fxas Aplcação composta por tarefas (processos) Estados de uma tarefa: Lberada (pronta para executar, apta, ready) Executando (runnng) Suspensa esperando pela próxma atvação Outros estados serão acrescentados mas adante Em geral escalonamento é preemptvo Tarefas possuem prordade fxa defnda em projeto Garanta exge Tarefas peródcas ou esporádcas Tempo máxmo de computação conhecdo Teste de escalonabldade aproprado Quanto menor o período, mas alta a prordade Ótmo quando Tarefas são peródcas Deadlne é sempre gual ao período Exemplo: Tarefas eríodos = = =5 rordades p= p= p= udado! úmero menor ndca prordade maor Mutas vezes é o contráro rordade Fxa Rate Monotonc 9
rordade Fxa Análse da Utlzação Utlzação de uma tarefa: Tempo máxmo de computação dvddo pelo período U = / tem = e =5, então U = / = / 5 =. Teste para Rate Monotonc, sstema é escalonável se: = ( ) ( / ) ara = utlzação máxma é % ara grandes utlzação máxma tende para 69.% Baseado no conceto de Instante rítco Teste é sufcente mas não necessáro Lmar de Utlzação.% 8.8% 78.% 75.7% 5 7.% 7.8% nfnto 69.% rordade Fxa Análse da Utlzação rordade Fxa Análse da Utlzação Exemplo: eríodos =6 = =8 omputação = =5 = Utlzação U=.5 U=.5 U=. rordades p= p= p= Utlzação total é.775, abaxo do lmte.78 rordade Fxa Análse da Utlzação Exemplo: eríodos = = =8 omputação = = = Utlzação U=.5 U=.5 U=.5 rordades p= p= p= Utlzação total é, acma do lmar.78, mas conjunto é escalonável 5 5 7 6 8 6 58 5 6 7 8 9 5 6 Testes baseados em utlzação ão são geras ão são exatos Mas são rápdos, O() rordade Fxa Análse da Utlzação Exemplo de teste necessáro mas não sufcente para este modelo de tarefas = ( ) 5 rordade Fxa Análse do Tempo de Resposta Lmtações da análse baseada em Utlzação ão éexata Aplcável apenas a modelos de tarefas muto smples Análse baseada em Tempo de Resposta Abordagem analítca calcula tempo de resposta no por caso Tempo de resposta de cada tarefa é comparado com o deadlne da tarefa Baseada no conceto de Função Demanda de Tempo 6
rordade Fxa Análse do Tempo de Resposta Função Demanda de Tempo (Tme-Demand Functon) Base da análse do tempo de resposta Indca quando tempo de processador é demandado pelas tarefas Exemplo: : =,=; : =,= Demanda + Dsponbldade rordade Fxa Análse do Tempo de Resposta omo calcular o tempo de resposta de cada tarefa? ara a tarefa mas prortára temos R = Demas tarefas sofrem Interferênca das tarefas com prordade maor este caso, R = + I Interferênca é máxma a partr do Instante rítco Todas as tarefas são lberadas smultaneamente Suposto nstante zero na análse tempo 5 6 7 8 9 7 8 rordade Fxa Análse do Tempo de Resposta Seja Tj uma tarefa com prordade maor que T Quantas vezes Tj pode acontecer durante a execução de T? Qual a nterferênca total de Tj sobre T? Qual a nterferênca total sobre T? R j R j j R j j hp( ) j rordade Fxa Análse do Tempo de Resposta O tempo máxmo de resposta de T é R = + I R R = + j j hp( ) j Equação é recursva alculada através de terações sucessvas, até: Tempo de resposta passar do deadlne Resultado convergr, teração x+ gual a teração x w w x + x = + j j hp( ) j w = 9 rordade Fxa Análse do Tempo de Resposta Exemplo: eríodos =7 = = omputação = = =5 rordades p= p= p= R = = rordade Fxa Análse do Tempo de Resposta Análse da tarefa : w = = w w = + 6 = + 7 = w 6 w = + 6 = + 7 = 6
rordade Fxa Análse do Tempo de Resposta Análse da Tarefa : w = = 5 w 5 5 w = + j = 5+ j hp j 7 + = ( ) w = 5+ 7 + = w = 5+ 7 7 + = 7 7 w = 5+ 7 + = w 5 = 5+ 7 + = rordade Fxa Análse do Tempo de Resposta 7 Exemplo: eríodos =7 = = omputação = = =5 rordades p= p= p= Tempo Máxmo de Resposta R= R=6 R= rordade Fxa Análse do Tempo de Resposta Exemplo: eríodos = = =8 omputação = = = Utlzação U=.5 U=.5 U=.5 rordades p= p= p= Utlzação total é, acma do lmar.78 mas conjunto é escalonável Aplcando o cálculo do tempo de resposta temos Análse da tarefa : R = = 5 rordade Fxa Análse do Tempo de Resposta Exemplo: eríodos = = =8 omputação = = = Utlzação U=.5 U=.5 U=.5 rordades p= p= p= Análse da tarefa : w w = = w = + = + = 7 w w = + = + = 7 6 rordade Fxa Análse do Tempo de Resposta Exemplo: eríodos = = =8 omputação = = = Utlzação U=.5 U=.5 U=.5 rordades p= p= p= Análse da Tarefa : w w w = = = + = + + = () j j hp j 5 5 w = + + = 5 w = + + = 7 7 7 5 8 8 w = + + = 8 w = + = 8 + 7 rordade Fxa Análse do Tempo de Resposta Exemplo: eríodos = = =8 omputação = = = Utlzação U=.5 U=.5 U=.5 rordades p= p= p= Resposta R= R= R=8 Utlzação total é, acma do lmar.78, mas conjunto é escalonável 5 6 7 8 9 5 6 8
rordade Fxa Análse do Tempo de Resposta Teste de escalonabldade exato (sufcente e necessáro) Deadlne pode ser menor que o período Basta comparar o tempo de resposta com o deadlne Deadlne maor que o período exge análse mas complexa Tarefa pode nterferr com ela mesma Tarefas esporádcas podem ser tratadas como peródcas Intervalo mínmo entre atvações é usado como período A forma como prordades são atrbudas ÃO é mportante Funcona pos hp() sempre ndca as tarefas mas prortáras do que a tarefa 9 rordade Fxa Deadlne Monotonc Quanto menor o deadlne, maor a prordade Ótmo quando deadlne é menor ou gual ao período Exemplo: Tarefas T eríodos = =5 = = WET = = = = Deadlne D=5 D=7 D= D= rordades p= p= p= p= Tempo máxmo de resposta R= R=6 R= R= aso fosse RM R= R=7 R= R= 5 ada tarefa recebe uma prordade fxa rordade Fxa Resumo Teste é desenvolvdo para examnar a escalonabldade Dos tpos de análse Análse da Utlzação Utlza o valor / Análse do Tempo de Resposta Tenta calcular o tempo de resposta no por caso Executvo íclco Escalonamento com Garanta - Resumo rordades + Teste de Escalonabldade rordades Varáves com Teste de Escalonabldade rordades Fxas com Teste de Escalonabldade Todos são capazes de garantr deadlnes Executvo cíclco é menos flexível porém oferece determnsmo de escala EDF oferece escalonabldade superor em relação à prordade fxa, porém é caótco em sobrecarga e análse é mas complexa rordade fxa permte extender mas faclmente a análse de escalonabldade 5 5