escalonabilidade em tarefas dependentes: compartilhamento de recursos andré luis meneses silva

36
Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Upload: internet

Post on 21-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Escalonabilidade em tarefas Dependentes: Compartilhamento de

RecursosAndré Luis Meneses Silva

Page 2: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Agenda

• Deadline Arbitrário• Protocolo Herança de Prioridade• Protocolo Prioridade Teto

Page 3: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

• Em modelos de deadline arbitrário, podemos ter (D > P).

• Tarefas com estas características sofrem interferência interna.

• Logo, para cálculo do tempo de resposta, também temos de levar em consideração a interferência da própria tarefa sobre si mesmo.

Page 4: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

• Antes nós tínhamos:

• E agora temos:

Page 5: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

• Antes nós tínhamos:

• E agora temos:Onde, q+1 representam as ativações de Ti que podem se sobrepor.

Onde, q+1 representam as ativações de Ti que podem se sobrepor.

Page 6: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

• Tempo de Resposta (q = 0, 1, 2, ...)

• Para calcular o número de auto-interferências.

Page 7: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

• Na presença de Jitter, basta adicionarmos o Jitter em nossos cálculos.

Page 8: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

• ExemploTar.

PeriódicasJitter Período T. de Computação Deadline Prioridade

Tarefa A 1 40 10 40 1Tarefa B 3 80 10 25 2Tarefa C - 20 5 40 3

Modelar no Cheddar.Usar algoritmo Highest Priority First.

Modelar no Cheddar.Usar algoritmo Highest Priority First.

Page 9: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

25 <= (0 + 1) . 20 25 <= 20 (Falso, então continuamos).

Page 10: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Deadline Arbitrário

R3(0) = W3(0) – 0 = 25

25 <= (1 + 1) . 20 30 <= 40 (Verdadeiro), achamos a

interferência.Para o Cálculo de R, fazemos

Page 11: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Tarefas Dependentes

• Podemos ter dois casos– Compartilhamento de Recursos.– Dependência entre Tarefas.

Page 12: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Compartilhamento de Recursos

• Imaginem o seguinte cenário:

Executando em SC

Pedido de entrada em SC

Page 13: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Compartilhamento de Recursos

• Este comportamento é denominado de inversão de prioridade.– Tarefas menos prioritárias bloqueiam mais

prioritárias por estar utilizando um recurso compartilhado.

– Problemas?

Page 14: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Compartilhamento de Recursos

• Este comportamento é denominado de inversão de prioridade.– Tarefas menos prioritárias bloqueiam mais

prioritárias por estar utilizando um recurso compartilhado.

– Problemas?• Tarefas mais prioritárias podem ficar um longo período

de tempo bloqueadas.– Tarefas intermediárias vão provocar sucessivas preempções

na tarefa em sessão crítica.• Como resolver isso?

Page 15: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Compartilhamento de Recursos

• Algoritmos mais comuns:– Protocolo Herança de Prioridade– Protocolo de Prioridade Teto

Page 16: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

• Tarefas possuem duas prioridades:– Tarefas possuem prioridade nominal ou estática

(RM, DM, etc).– Tarefas possuem prioridade dinâmica ou ativa.• Derivadas das ações de bloqueio que ocorrem no

sistema.

Page 17: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

• Funcionamento: Tarefas são escalonadas pela sua prioridade estática enquanto não existir recurso bloqueado.

• Quando existe recurso bloqueado, a tarefa em sessão crítica herda prioridade das tarefas mais prioritárias.

Page 18: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

Executando em SC

Pedido de entrada em SC

Herda Prioridade P1Fim de Execução da Sessão Crítica

Entrada em SC

Page 19: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

• Sob o PHP um tarefa pode sofrer três tipos de bloqueios– Bloqueio direto• (T1 > T2) compartilham recursos. • T2 bloqueia T1.

– Bloqueio por herança• (T1 > T2 >T3) compartilham recursos. • T3 bloqueia T1 e conseqüentemente T3 bloqueia T2.

– Bloqueio transitivo• T1 bloqueia T2. T2 bloqueia T3. T1 bloqueia T3.

Page 20: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Identifique os BloqueiosBloqueio DiretoBloqueio Direto

Bloqueio HerançaBloqueio Herança

Bloqueio HerançaBloqueio Herança

Page 21: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Identifique os Bloqueios

Bloqueio TransitivoBloqueio Transitivo

Bloqueio DiretoBloqueio Direto

Bloqueio TransitivoBloqueio Transitivo

Page 22: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

• Teste de Escalonabilidade.– Similar aos anteriores, mas leva em consideração

o bloqueio máximo (Bi) de cada tarefa.

– Bi = maior sessão crítica que bloqueia Ti.

Page 23: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

Tar. Periódicas Período T. de Computação Bi Prioridade RM

Tarefa A 18 6 2 1Tarefa B 20 4 4 2Tarefa C 50 10 0 3

• Modelar no Cheddar

Usar algoritmo Rate Monotonic.Bi = Blocking TimeUsar algoritmo Rate Monotonic.Bi = Blocking Time

Page 24: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

Tar. Periódicas Período T. de Computação Bi Prioridade RM

Tarefa A 18 6 2 1Tarefa B 20 4 4 2Tarefa C 50 10 0 3

Page 25: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

• Ou ainda poderíamos utilizar:

Page 26: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Atividade para Casa

• Calcular a utilização para cada uma das tarefas.

• Compare os resultados com os obtidos pelo cheddar.

Page 27: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

• Qual o problema do PHP?– PHP é sujeito a deadlock.– Alguém consegue dar um exemplo?

Page 28: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo Herança de Prioridade (PHP)

Inicia a ExecuçãoInicia a Execução

Entra em SC1Entra em SC1

Sofre PreempçãoSofre PreempçãoEntra em SC2Entra em SC2 Pede para entra

em SC1Pede para entra em SC1

Volta a executarVolta a executar Pede para entrar em SC2Pede para entrar em SC2

Deadlock

Deadlock

Como resolver isso? Idéias?Como resolver isso? Idéias?

Page 29: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo de Prioridade Teto

• Limita o número de bloqueios ou inversões de prioridade para evitar deadlocks.

• Dirigido para escalonamento de prioridade fixa.

• Similar ao PHP, porém corrige suas falhas.– Também trabalha com herança de prioridades.

Page 30: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo de Prioridade Teto• Funcionamento:– Cada recurso possui uma prioridade teto (prioridade

igual a da tarefa mais prioritária que pode alocar o recurso).

– Se nenhum recurso compartilhado está bloqueado, quem requisita é atendido.

– Se alguma tarefa bloqueia outra mais prioritária, a menos prioritária herda sua prioridade.

– No caso de haver recurso em uso:• A tarefa que solicita só consegue acesso ao recurso solicitado

se sua prioridade for maior que a prioridade teto de todos os recursos em uso alocados por outras tarefas.

Page 31: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Protocolo de Prioridade Teto

Legenda para os recursosRC1 (Prioridade Teto = P1) RC2 (Prioridade Teto = P1)RC3 (Prioridade Teto = P2)Tempo de término

Seja P1 > P2 > P3Seja P1 > P2 > P3

P3

P2

P1

P2 P3

Page 32: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Teste de Escalonabilidade no PCP.

• Mesmas fórmulas do PHP• Só muda o conceito de bloqueio máximo (Bi).– Duração da maior sessão crítica que pode

bloquear pelo algoritmo de Teto.

Page 33: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Teste de Escalonabilidade no PCP

P3

P2

P1

P2 P3

Page 34: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Modelar no CheddarTar.

PeriódicasPeríodo T. de Computação Bi Prioridade RM Compartilhamento

Tarefa A 15 10 2 1 S1, S2Tarefa B 20 8 1 2 S1, S3Tarefa C 25 6 0 3 S2, S3

Tar. Periódicas Recurso /Intervalo Recurso /Intervalo

Tarefa A S1 (1-2) S2(3-4) Tarefa B S1(2-3) S3(1-2)Tarefa C S2(3-7) S3(2-8)

Page 35: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Atividades para Casa

• Modelar no Cheddar esta escala

P3

P2

P1

P2 P3

Page 36: Escalonabilidade em tarefas Dependentes: Compartilhamento de Recursos André Luis Meneses Silva

Referências

• Farines– Seções 2.5.3 a 2.6