ciclo de vida de serviços escalonamento...

9
14/06/2018 1 Escalonamento (Scheduling) Prof. Hugo Vieira Neto Ciclo de Vida de Serviços Notação – Diagrama de Gantt Tipos de Tarefas Periódica Sequência (ilimitada) de serviços idênticos lançados em intervalos fixos de tempo Aperiódica Sequência de serviços lançados aleatoriamente, em geral como resposta a algum evento externo Esporádica Subconjunto de tarefas aperiódicas em que se estabelece a um período fixo mínimo entre ativações consecutivas Tipos de Tarefas Métodos de Escalonamento Estático Cooperativo, a cargo do programador Dinâmico Prioridade fixa Não-preemptivo (ex: First Come First Served) Preemptivo (ex: Round Robin) Prioridade variável

Upload: doancong

Post on 13-Oct-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

1

Escalonamento (Scheduling)

Prof. Hugo Vieira Neto

Ciclo de Vida de Serviços

Notação – Diagrama de Gantt Tipos de Tarefas

• Periódica – Sequência (ilimitada) de serviços idênticos lançados

em intervalos fixos de tempo

• Aperiódica – Sequência de serviços lançados aleatoriamente, em

geral como resposta a algum evento externo

• Esporádica – Subconjunto de tarefas aperiódicas em que se

estabelece a um período fixo mínimo entre ativações consecutivas

Tipos de Tarefas Métodos de Escalonamento

• Estático

– Cooperativo, a cargo do programador

• Dinâmico

– Prioridade fixa

• Não-preemptivo (ex: First Come First Served)

• Preemptivo (ex: Round Robin)

– Prioridade variável

Page 2: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

2

Escalonamento Não-preemptivo

Prioridades Pa > Pb > Pc

Escalonamento Preemptivo

Prioridades Pa > Pb > Pc

First Come First Served

• Escalonamento dinâmico não-preemptivo em que a ordem de execução dos serviços é determinada pela ordem em que entram no estado PRONTO.

• Raramente utilizado em aplicações em tempo real, a não ser como meio de desempate entre serviços de uma mesma fila de prioridade em escalonadores mais complexos.

Round Robin

• Escalonamento dinâmico preemptivo semelhante ao FCFS no tratamento da ordem de execução dos serviços.

• No entanto, cada serviço recebe o controle do processador por um intervalo de tempo máximo Tq.

• Se o serviço não terminar dentro do intervalo Tq, será preemptido e terá que aguardar um próximo intervalo para continuar.

• Serviços podem ceder voluntariamente o controle do processador antes do final do seu intervalo de tempo.

Exemplo – Round Robin Desempenho – Round Robin

• Fortemente influenciado pelo intervalo de tempo Tq, pelo tempo de execução das tarefas e pelo número de tarefas ativadas.

• Resultado final situa-se entre comportamento semelhante ao FCFS (Tq ≥ tempo de execução da tarefa mais demorada) e ineficiência total (Tq ≤ tempo de execução do mecanismo de preempção).

Page 3: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

3

Earliest Deadline First

• Seleciona o serviço com prazo (deadline) terminando mais cedo dentre o conjunto de serviços que estão no estado PRONTO.

• Não-preemptivo: o serviço selecionado executa até o final, até entrar no estado SUSPENSO/ BLOQUEADO ou até entrar voluntariamente no estado PRONTO (task yield).

• Preemptivo: o serviço pode ser preemptido por outro serviço com prazo terminando mais cedo.

Exemplo – EDF Preemptivo

Desempenho – EDF

• Escalonamento EDF não-preemptivo não é adequado, dada a interferência de serviços demorados com prazos longos em serviços recém-chegados com prazos mais curtos, colocando em risco a garantia teórica de cumprimentos de prazos.

Least Laxity First

• Tempo de relaxamento (laxity): diferença de tempo entre o prazo efetivo e o prazo estimado do serviço.

Least Laxity First

• Prioridade determinada dinamicamente, de modo que o serviço com menor tempo de relaxamento tenha a maior prioridade.

• Enquanto o serviço está no estado EXECUTANDO, seu prazo permanece inalterado. No entanto, quando está no estado PRONTO ou SUSPENSO/ BLOQUEADO, seu prazo estimado aumenta e portanto seu tempo de relaxamento diminui. Em algum momento no futuro se tornará o serviço com maior prioridade.

Desempenho – Least Laxity First

• Quando duas ou mais tarefas possuem tempos de relaxamento muito próximos, acontece um efeito do tipo “pingue-pongue”, causando alto número de preempções que afetam negativamente o desempenho.

• Adequado para escalonamento preemptivo apenas (pelas mesmas razões do método EDF).

Page 4: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

4

Highest Priority First

• Determina a ordem de execução das tarefas pela prioridade (pré-determinadas no projeto).

• Critérios:

– Importância e periodicidade das tarefas

• Prioridades estáticas pré-determinadas

– Análise Monotônica de Taxa (RMA)

• Prioridades maiores para serviços com períodos menores

– Análise Monotônica de Prazo (DMA)

• Prioridades maiores para serviços com prazos menores

Taxa de Utilização do Processador

• A taxa de utilização do processador em uma tarefa é seu tempo de computação Ci dividido pelo seu período Ti.

• Se a taxa de utilização for menor ou igual a 1, a tarefa é escalonável.

• Exemplo: processamento de vídeo em tempo-real (30 quadros por segundo)

Taxa de Utilização do Processador

• Teoricamente, um conjunto de n tarefas é escalonável se a soma das taxas de utilização de todas as tarefas for menor ou igual a 1:

𝐶𝑖𝑇𝑖≤ 1

𝑛

𝑖=1

• Na prática, somente sob certas condições:

– Serviços devem encaixar-se perfeitamente em todas as combinações de fase entre ativações

2

6+3

12+5

12= 1

Exemplo sem Prioridades

1

3+1

5+5

11= 0,988

Exemplo com Prioridades (RMA) Teorema 1 – Liu & Layland, 1973

• Seja um conjunto de n tarefas periódicas com prazos iguais aos períodos e prioridades por RMA em ambiente preemptivo. Liu & Layland (1973) estabelecem um limite máximo U(n) para a taxa de utilização do processador, que garante a escalonabilidade deste conjunto de tarefas:

𝐶𝑖𝑇𝑖≤ 𝑈 𝑛 = 𝑛 2

1𝑛 − 1

𝑛

𝑖=1

Page 5: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

5

Comportamento de U(n)

N: não escalonável, P: escalonável, H: incerteza.

Teorema 2 – Liu & Layland, 1973

• “Se um conjunto de tarefas periódicas e independentes é ativado no mesmo instante, e cada tarefa atende o seu primeiro prazo, então todos os futuros prazos serão atendidos”.

• O teorema não condiciona o conjunto de tarefas a RMA, sendo aplicável a qualquer esquema de prioridades estáticas.

Exercício

• Seja um conjunto de tarefas J1, J2 e J3, com os seguintes períodos (Ti) e tempos de computação (Ci):

• Os prazos das tarefas são iguais aos respectivos períodos e suas prioridades atribuídas por RMA.

Tarefa J1 J2 J3

Período T1 = 3 T2 = 4 T3 = 12

Tempo de Computação

C1 = 1 C2 = 1 C3 = 3

Exercício

• Pode-se afirmar que os períodos das tarefas são harmônicos?

• Determine se este conjunto de tarefas é teoricamente escalonável pelos seguintes métodos:

1. Taxa de utilização do processador

2. Limite U(n) do Teorema 1 de Liu & Layland (1973)

Exercício

• Se a tarefa J3,que possui o maior tempo de computação, fosse reimplementada de forma mais eficiente (i.e. reduzindo o seu tempo de computação C3 de 3 para 2 tiques), haveria alguma diferença na escalonabilidade teórica do conjunto de tarefas em questão?

• Esquematize diagramas de Gantt com possí-veis escalonamentos para ambos os casos, considerando as prioridades das tarefas.

Escalonamento com Bloqueio

• Recursos compartilhados – Mutexes – Semáforos – Sincronização

• Problemas – Impasse de bloqueio (deadlock) – Inversão de prioridades

• Soluções – Protocolo de herança de prioridade – Protocolo de teto de prioridade

Page 6: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

6

Impasse de Bloqueio Inversão de Prioridades

Inversão de Prioridades

No instante 17, a tarefa τ1 solicita a trava de S1 e, não conseguindo, permanece bloqueada até que o recurso S1 seja liberado no instante 23

Inversão de Prioridades

O tempo de bloqueio do recurso S1 é igual a 6, sendo fortemente influenciado pela interfe- rência das tarefas τ2 e τ3 no tempo de resposta da tarefa τ4

Priority Inheritance Protocol

• Sob o Protocolo de Herança de prioridade, uma tarefa possui uma prioridade básica atribuída estaticamente e uma prioridade ativa.

• A prioridade ativa de uma tarefa durante a seção crítica que detém a trava de um recurso é igual ao máximo entre sua prioridade básica e a maior prioridade ativa do conjunto de tarefas bloqueadas que esperam pela liberação do recurso.

Priority Inheritance Protocol

Page 7: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

7

Priority Inheritance Protocol

No instante 17 a tarefa τ1 requisita a trava do recurso S1, que está bloqueado pela tarefa τ4; esta, por sua vez, herda a prioridade da tarefa τ1 e passa a ser executada, retomando sua prioridade original após a liberação do recurso em questão

Priority Inheritance Protocol

No instante 21 a tarefa τ1 requisita a trava do recurso S2, que está bloqueado pela tarefa τ2; esta, por sua vez, herda a prioridade da tarefa τ1 e passa a ser executada , retomando sua prioridade original após a liberação do recurso em questão

Priority Inheritance Protocol

As tarefas τ2 e τ3 ainda ficam suspensas pela tarefa menos prioritária τ4 entre os instantes 17 e 20, sendo que a tarefa τ3 sequer usa os recursos em questão.

Priority Ceiling Protocol

• O Protocolo de Herança de Prioridade não previne impasses de bloqueio e além disso pode levar à formação de cadeias de bloqueio.

• Sob o Protocolo de Teto de Prioridade, o recurso tem seu teto de prioridade igual à maior prioridade básica das tarefas em que é utilizado (teto geral). A prioridade das tarefas é definida como no Protocolo de Herança de Prioridade.

• Uma tarefa obtém a trava de um recurso livre se sua prioridade ativa for maior que o teto geral ou se detém a trava do recurso que fixou o teto geral.

Priority Ceiling Protocol

O recurso S1 (laranja) tem teto de prioridade igual a 4 (utilizado nas tarefas τ1 e τ4) O recurso S2 (verde) também tem teto de prioridade igual a 4 (utilizado nas tarefas τ1 e τ2)

Priority Ceiling Protocol

No instante 13 a tarefa τ4 obtém a trava do recurso S1 e o teto geral passa para o teto de prioridade desse recurso

Page 8: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

8

Priority Ceiling Protocol

No instante 15 a tarefa τ2 requisita a trava do recurso S2 e não consegue, pois sua prioridade ativa não é maior que o teto geral; a prioridade ativa da tarefa τ4 passa para o máximo das prioridades ativas das tarefas τ2 e τ4, envolvidas com o recurso em questão

Priority Ceiling Protocol

No instante 17 a tarefa τ1 requisita a trava do recurso S1 e não consegue, pois sua prioridade ativa não é maior que o teto geral; a prioridade ativa da tarefa τ4 passa para o máximo das prioridades ativas das tarefas τ1 e τ4, envolvidas com o recurso em questão

Priority Ceiling Protocol

No instante 19 a tarefa τ4 libera o recurso S1 e sua prioridade ativa volta para a sua prioridade básica; o teto geral passa momentaneamente para 0

Priority Ceiling Protocol

Ainda no instante 19 a tarefa τ1 obtém a trava do recurso S1 e o teto geral passa para o teto de prioridade do recurso em questão

Priority Ceiling Protocol

No instante 20 a tarefa τ1 libera o recurso S1 e sua prioridade ativa volta para a sua prioridade básica (neste caso, a mesma); o teto geral passa momentaneamente para 0

Priority Ceiling Protocol

Ainda no instante 20 a tarefa τ1 obtém a trava do recurso S2 e o teto geral passa para o teto de prioridade do recurso em questão

Page 9: Ciclo de Vida de Serviços Escalonamento Schedulingdainf.ct.utfpr.edu.br/~hvieir/EL68E/escalonamento.pdf · Notação – Diagrama de Gantt Tipos de Tarefas •Periódica –Sequência

14/06/2018

9

Priority Ceiling Protocol

No instante 21 a tarefa τ1 libera o recurso S2 e o teto geral passa para 0

Priority Ceiling Protocol

O que acontece nos instantes 15 e 17 previne impasses de bloqueio, simplesmente não permitindo que outros recursos com teto de prioridade menor ou igual ao teto geral (recurso S2 nesse exemplo) sejam travados.

Referências

• Luguesi, J. L., Ambiente de Apoio ao Ensino e Aprendizado do Escalonamento em Sistemas em Tempo Real. Dissertação de Mestrado, UTFPR, 2006

– Capítulos 2 e 3, especialmente

• Liu, J. W. S., Real-Time Systems, First Edition. Prentice Hall, 2000

Referências

• Liu, C. L.; Layland, J. W., Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment. Journal of the Association for Computing Machinery 20(1), pp. 46-61, 1973

• Sha, L.; Rajkumar, R.; Lehoczky, J. P., Priority Inheritance Protocols: An Approach to Real-Time Synchronization. In IEEE Transactions on Computers 39(9), pp. 1175-1185, 1990