escalonamento em sistemas de tempo real - ece.ufrgs.brfetter/eng04008/sched.pdf · atribuiçªo de...
TRANSCRIPT
![Page 1: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/1.jpg)
Escalonamento em Sistemas deTempo Real
Walter Fetter [email protected]
Universidade Federal do Rio Grande do SulEscola de Engenharia
Departamento de Engenharia ElétricaENG04008 Sistemas de Tempo Real
Copyright (c) Walter Fetter Lages – p.1
![Page 2: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/2.jpg)
Introdução
• Ordenação do uso dos recursos do sistema• Previsibilidade do comportamento do sistema no
pior caso• Interleaving
• 5 processos, não preemptivo, única CPU =>120 modos diferentes
• Preemptivo• Não preemptivo• Estático• Dinâmico
Copyright (c) Walter Fetter Lages – p.2
![Page 3: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/3.jpg)
Modelo Simplificado de Processo
• Conjunto de processos fixo• Processos periódicos
• Períodos conhecidos• Processos independentes• Overheads do sistema desprezados• Deadline dos processo igual ao período• Pior caso do tempo de execução dos processos
fixo• Instante crítico -> todos os processos liberados no
mesmo instante
Copyright (c) Walter Fetter Lages – p.3
![Page 4: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/4.jpg)
Notação
B tempo de processo bloqueado (pior caso)C tempo de computação (pior caso)D deadlineI tempo de interferênciaJ jitter de liberaçãoN número de processosP prioridade do processoR tempo de resposta do processo (pior caso)T tempo mínimo entre liberações (período)U tempo de utilização do processo (C/T )
Copyright (c) Walter Fetter Lages – p.4
![Page 5: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/5.jpg)
Execução Cíclica
Processo Período Tempo de ComputaçãoA 25 10B 25 8C 50 5D 50 4E 100 2
Copyright (c) Walter Fetter Lages – p.5
![Page 6: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/6.jpg)
Execução Cíclica
• Ciclos• Principal• Secundário
• Seqüência de chamadas de subrotinas• Não existe acesso concorrente à variáveis• Período de "processo"= n*ciclo secundário
• Dificuldades para processos esporádicos• Problemas com processos com períodos
longos• É difícil construir executivo cíclico• Processos com tempo de computação grandes
terão que ser divididos em processo menoresCopyright (c) Walter Fetter Lages – p.6
![Page 7: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/7.jpg)
Escalonamento de Processos
• Preemptivo• Não preemptivo• Preenpção retardada• Despacho cooperativo• Prioridade
• Baseada nas propriedades temporais doprocesso
Copyright (c) Walter Fetter Lages – p.7
![Page 8: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/8.jpg)
Rate Monotonic
• Quanto menor o período do processo, maior aprioridade
• Escalonamento ótimo para D = T• Se um conjunto de processos pode ser
escalonado com um esquema de prioridadesfixas, este conjunto de processos tambémpode ser escalonado com rate monotonic
Processo Período Prioridade
A 25 5
B 60 3
C 42 4
D 105 1
E 75 2
Copyright (c) Walter Fetter Lages – p.8
![Page 9: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/9.jpg)
Teste de Utilização
• Prioridades atribuídas com rate monotonic• Suficiente, mas não necessário• Limite de utilização = 69.3%
N∑
i=1
(
Ci
Ti
)
< N(
21/N − 1)
N Limite
1 100%
2 82.8%
3 78.0%
4 75.7%
5 74.3%
10 71.8%Copyright (c) Walter Fetter Lages – p.9
![Page 10: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/10.jpg)
Exemplo
• Utilização total=82%• Limite para três processos=0.78• Falha no teste
T C P UTask 1 50 12 1 0.24Task 2 40 10 2 0.25Task 3 30 10 3 0.33
Copyright (c) Walter Fetter Lages – p.10
![Page 11: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/11.jpg)
Time-line
• No instante 50, Task 1 executou apenas 10,quando necessitava executar 12
• perda de deadline
Copyright (c) Walter Fetter Lages – p.11
![Page 12: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/12.jpg)
Gantt Chart
Copyright (c) Walter Fetter Lages – p.12
![Page 13: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/13.jpg)
Teste Baseado em Time-line
• Time-line pode ser utilizada para determinar aescalonabilidade
• Quão longa precisa ser a time-line?• Se todos os processos tem o mesmo instante
de liberação (possuem um instante crítico emcomum), uma time-line igual ao períodomáximo é suficiente
• Portanto, se todos os processo cumprirem suaprimeira deadline, cumprirão todas as futuras
Copyright (c) Walter Fetter Lages – p.13
![Page 14: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/14.jpg)
Contra-Exemplo
• Utilização=100%• Obviamente falha no teste de utilização
T C P UTask 1 80 40 1 0.50Task 2 40 10 2 0.25Task 3 20 5 3 0.25
Copyright (c) Walter Fetter Lages – p.14
![Page 15: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/15.jpg)
Contra-Exemplo
Copyright (c) Walter Fetter Lages – p.15
![Page 16: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/16.jpg)
Análise de Tempo de Resposta
• Teste de utilização não fornece indicação dotempo de resposta de cada processo
• Para o processo de maior prioridade, R = C
• Os demais, sofrerão interferência dos processosde maior prioridade
Ri = Ci + Ii
Copyright (c) Walter Fetter Lages – p.16
![Page 17: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/17.jpg)
Interferência entre Processos
• Processo j com prioridade maior do que oprocesso i
Número de Liberações =
Ri
Tj
Interferência Máxima =
Ri
Tj
Cj
Ii =∑
j∈hp(i)
Ri
Tj
Cj
Copyright (c) Walter Fetter Lages – p.17
![Page 18: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/18.jpg)
Cálculo do Tempo de Resposta
Ri = Ci +∑
j∈hp(i)
Ri
Tj
Cj
ωn+1i = Ci +
∑
j∈hp(i)
ωni
Tj
Cj
Copyright (c) Walter Fetter Lages – p.18
![Page 19: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/19.jpg)
Exemplo
Período Tempo de Computação PrioridadeTask 1 7 3 3Task 2 12 3 2Task 3 20 5 1• R1 = 3
• ω02 = 3
• ω12 = 3 + d3/7e3 = 6
• ω22 = 3 + d6/7e3 = 6 = R2
Copyright (c) Walter Fetter Lages – p.19
![Page 20: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/20.jpg)
Exemplo
• ω03 = 5
• ω13 = 5 + d5/7e3 + d5/12e3 = 11
• ω23 = 5 + d11/7e3 + d11/12e3 = 14
• ω33 = 5 + d14/7e3 + d14/12e3 = 17
• ω43 = 5 + d17/7e3 + d17/12e3 = 20
• ω53 = 5 + d20/7e3 + d20/12e3 = 20 = R3
Copyright (c) Walter Fetter Lages – p.20
![Page 21: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/21.jpg)
Exemplo
Copyright (c) Walter Fetter Lages – p.21
![Page 22: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/22.jpg)
Pior-caso do Tempo de Execução
• Medição• Dificuldade para garantir que o pior-caso foi
observado• Análise
• Dificuldade para modelar o processador• Cache• Pipeline• Wait-states
• Influência do compilador
Copyright (c) Walter Fetter Lages – p.22
![Page 23: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/23.jpg)
Processos não Periódicos
• Processos esporádicos• T é interpretado como o período mínimo• D < T• Algoritmo de cálculo de R modificado para
ter como critério de parada ωwn+1i > Di
• Processos aperiódicos• T é interpretado como período médio
Copyright (c) Walter Fetter Lages – p.23
![Page 24: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/24.jpg)
Deadline Monotonic
• Quanto menor o dealine, maior a prioridade• Escalonamento ótimo para D < T
T D C P RTask 1 20 5 3 4 3Task 2 15 7 3 3 6Task 3 10 10 4 2 10Task 4 20 20 3 1 20
Copyright (c) Walter Fetter Lages – p.24
![Page 25: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/25.jpg)
Prova de que DMPO é Ótimo
• DMPO é ótimo se para qualquer conjunto deprocesso Q, escalonável por um esquema deprioridades Ω, Q também é escalonável porDMPO
• Se DMPO é ótimo, será possível transformar asprioridades de Q segundo Ω, nas prioridadessegundo DMPO, preservando a escalonabilidade
Copyright (c) Walter Fetter Lages – p.25
![Page 26: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/26.jpg)
Prova de Otimalidade
• Sejam i e j dois processos com prioridadesadjacentes, tais que utilizando Ω• Pi > Pj e Di > Dj
• Definindo-se Ω′ tal que a ordem de i e j éinvertida, tem-se• Processos com prioridade > Pi não são
afetados• Processos com prioridade < Pj não são
afetados• O processo j, agora possui maior prioridade e
portanto é escalonável utilizando-se Ω′
• É necessário provar que i ainda é escalonávelCopyright (c) Walter Fetter Lages – p.26
![Page 27: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/27.jpg)
Escalonabilidade de i
• Utilizando-se Ω• Rj ≤ Dj, Dj < Di, Di ≤ Ti
• O processo i interfere apenas uma vez durantea execução de j
• Utilizando-se Ω′
• Ri passa a ser Rj utilizando-se Ω, poisCj + Ci continua sendo o mesmo
• O processo j interfere apenas uma vezdurante a execução de i
• R′i = Rj ≤ Dj < Di, portanto i é escalonável
• Por repetição, DMPO é escalonável e ótimo
Copyright (c) Walter Fetter Lages – p.27
![Page 28: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/28.jpg)
Interferência entre Processos
• Em geral, processos não são independentes• Comunicação e sincronismo causam
bloqueamento de processos• Inversão de prioridade
• Quando um processo é bloqueado esperandopor um evento gerado por um processo demenor prioridade
• Exemplo:• L1 e L4 compartilham uma seção crítica Q• L3 e L4 compratilham outra seção crítica V
Copyright (c) Walter Fetter Lages – p.28
![Page 29: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/29.jpg)
Exemplo
Processo P Seqüência de Execução LiberaçãoL4 4 EEQVE 4L3 3 EVVE 2L2 2 EE 2L1 1 EQQQQE 0
Copyright (c) Walter Fetter Lages – p.29
![Page 30: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/30.jpg)
Exemplo
Copyright (c) Walter Fetter Lages – p.30
![Page 31: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/31.jpg)
Herança de Prioridade
• Se um processo p é suspenso esperando por umprocesso q, de menor prioridade, => prioridadede q = prioridade de p
Copyright (c) Walter Fetter Lages – p.31
![Page 32: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/32.jpg)
Cálculo do Tempo de Bloqueio
• usage(k, i) = 1 se o recurso k é usado por pelomenos um processo de prioridade < i e pelomenos um processo de prioridade ≥ i e 0 casocontrário
• CS(k) = tempo de execução da seção crítica
Bi =K∑
k=1
usage(k, i)CS(k)
Copyright (c) Walter Fetter Lages – p.32
![Page 33: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/33.jpg)
Tempo de Resposta com Bloqueio
Ri = Ci + Bi +∑
j∈hp(i)
Ri
Tj
Cj
Copyright (c) Walter Fetter Lages – p.33
![Page 34: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/34.jpg)
Protocolos de Priority Ceiling
• Herança de prioridade• Cálculo de pior-caso pessimista• Bloqueamento transiente• Possibilidade de deadlock
• Priority ceiling• Um processo de alta prioridade pode ser
bloqueado uma única vez por um processo demenor prioridade
• Bloqueamento transiente e deadlocks sãoprevenidos
• É garantida a exclusão mútua no acesso aosrecursos
Copyright (c) Walter Fetter Lages – p.34
![Page 35: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/35.jpg)
Original Ceiling Priority Protocol
• Cada processo tem uma prioridade estática• Cada recurso tem um valor de ceiling
• Máxprioridade dos processos que oacessam
• Cada processo tem uma prioridade dinâmica• Máxprioridade estática, prioridade herdada
• Um processo pode reservar um recurso somentese a sua prioridade dinâmica é maior do que oceiling de qualquer recurso já reservado poroutros processos
Copyright (c) Walter Fetter Lages – p.35
![Page 36: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/36.jpg)
OCPP
• O primeiro recurso sempre será alocado• Um segundo recurso só será reservade se não
exister um processo de prioridade maior que useo mesmo recurso
• Processo de alta prioridade só serão bloqueadosuma única vez por processo de baixa prioridade
Bi =K
maxk=1
usage(k, i)CS(k)
Copyright (c) Walter Fetter Lages – p.36
![Page 37: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/37.jpg)
Exemplo
Copyright (c) Walter Fetter Lages – p.37
![Page 38: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/38.jpg)
Immediate Ceiling Priority Protocol
• Cada processo tem uma prioridade estática• Cada recurso tem um valor de ceiling
• Máxprioridade dos processos que oacessam
• Cada processo tem uma prioridade dinâmica• Máxprioridade estática, ceiling dos recursos
reservados• Os processo serão bloqueados apenas no início de
sua execução• Quando o processo realmente começar a
executar todos os recursos estarão disponíveis
Copyright (c) Walter Fetter Lages – p.38
![Page 39: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/39.jpg)
ICPP
• Pior caso do tempo de bloqueio=OCPP• É mais fácil de implementar do que OCPP
• Não necessita monitorar as relações debloqueio
• Provoca menos trocas de contexto• Causa mais trocas de prioridade
• Trocas a cada reserva de recurso• OCPP apenas causa troca de prioridade se um
bloqueio é provocado• ICPP é denominado Priority Protected Protocol
no POSIX• Utilizado por variáveis mutex
Copyright (c) Walter Fetter Lages – p.39
![Page 40: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/40.jpg)
Exemplo
Copyright (c) Walter Fetter Lages – p.40
![Page 41: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/41.jpg)
Ceiling, Exclusão Mútua e Deadlocks
• Os protocolos OCPP e ICPP implementam aexclusão mútua por sí só, sem necessidade deoutras primitivas para garantir a exclusão mútua
• Previnem Deadlocks• Não existe a possibilidade de espera circular
Copyright (c) Walter Fetter Lages – p.41
![Page 42: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/42.jpg)
Escalonamento Cooperativo
• Bmáx = máximo tempo de bloqueio• Cada processo é divididos em blocks
não-preemptíveis, limitados por Bmáx• Ao final de cada bloco é chamada uma função
do kernel para oferecer a chance de"desescalonamento"
• O kernel pode monitorar o tempo e enviar umsinal ou abortar o processo se um bloco nãopreemptível for maior do que Bmáx
• Exclusão mútua garantida dentro de cada bloconão-preemptível
Copyright (c) Walter Fetter Lages – p.42
![Page 43: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/43.jpg)
Escalonamento Cooperativo
• Aumenta a escalonabilidade do sistema• Tende a causar menores valores de tempo de
computação• Não ocorre interferência no último bloco• Fi=tempo de execução do último bloco
ωn+1i = Bi + Ci − Fi +
∑
j∈hp(i)
ωni
Tj
Cj
Ri = ωni + Fi
Copyright (c) Walter Fetter Lages – p.43
![Page 44: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/44.jpg)
Jitter de Liberação
• Processo periódico (L) liberando um processoesporádico (S)
• TL = TS ?
Copyright (c) Walter Fetter Lages – p.44
![Page 45: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/45.jpg)
Jitter de Liberação
• Execução do processo periódico pode serqualquer valor entre RL e CL = 0
• TL − RL < TS < TL
• J =jitter de liberação• O processo i vai sofrer:
• Uma interferência de S se 0 ≤ Ri < T − J• Duas interferências de S se
T − J ≤ Ri < 2T − J• Três interferências de S se
2T − J ≤ Ri < 3T − J
Copyright (c) Walter Fetter Lages – p.45
![Page 46: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/46.jpg)
Tempo de Resposta com Jitter
Ri = Bi + Ci +∑
j∈hp(i)
Ri + Jj
Tj
Cj
Rperiódicoi = Ri + Ji
Copyright (c) Walter Fetter Lages – p.46
![Page 47: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/47.jpg)
Deadline Arbitrário
• D > T
• É necessário considerar a liberação de diversasinstâncias do processo
• ω(q) =janela com a superposição de q instâncias
ωn+1i (q) = Bi + (q + 1)Ci +
∑
j∈hp(i)
ωni (q)
Tj
Cj
Copyright (c) Walter Fetter Lages – p.47
![Page 48: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/48.jpg)
Resposta com Deadline Arbitrário
Ri(q) = ωni (q) − qTi
Ri(q) ≤ Ti
Ri = maxq=0,1,2,...
Ri(q)
Copyright (c) Walter Fetter Lages – p.48
![Page 49: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/49.jpg)
Atribuição de Prioridade
• Para deadlines genéricos, nenhum algoritmossimples (rate ou deadline monotonic) é ótimo
• Teorema:• Se um processo T possui a prioridade mais
baixa e é factível, então• Se um esquema de prioridades factível
existe para todo o conjunto de processos,então· Existe um esquema de prioridades tal
que T possui a menor prioridade• O teorema pode ser aplicado sucessivamente• Se o teste de factibilidade for exato (necessário e
suficiente) o esquema obtido é ótimoCopyright (c) Walter Fetter Lages – p.49
![Page 50: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/50.jpg)
Outros Esquemas
• Esquemas sem prioridade• Round-robin
• É alocado um quantum de tempo para cadaprocesso
• First-in First-out• Pode-se ter um esquema de prioridade com
vários processos com a mesma prioridade• Escalonamento RR ou FIFO em cada fila
de prioridade• Utilizado no POSIX
• Shortest Job First
Copyright (c) Walter Fetter Lages – p.50
![Page 51: Escalonamento em Sistemas de Tempo Real - ece.ufrgs.brfetter/eng04008/sched.pdf · Atribuiçªo de Prioridade Para deadlines genØricos, nenhum algoritmos simples (rate ou deadline](https://reader031.vdocuments.site/reader031/viewer/2022022708/5be5944a09d3f2d8348bd174/html5/thumbnails/51.jpg)
Outros Esquemas
• Escalonamento dinâmico• Earliest deadline• Least slack time
• slack=deadline-tempo de execução• Algoritmos ótimos
• Garantem escalonabilidade com utilizaçãode 100%
• Adequados para processos aperiódicos• Deadlines são perdidos durante sobrecargas
transitórias• Pouco previsibilidade quando é introduzido
bloqueamento
Copyright (c) Walter Fetter Lages – p.51