SlideShare uma empresa Scribd logo
1 de 46
[object Object]
Tempo real ,[object Object]
e.g.: Linux e Windows
Crítico ( hard ): tarefas críticas  devem  executar dentro um período de tempo estabelecido ( deadline ) ,[object Object]
Dinâmico: as decisões são tomados em tempo de execução ,[object Object]
É difícil prever o pior caso de programas concorrentes de tempo real quando a  complexidade aumenta -> impõe-se restrições na estrutura de tais programas: ,[object Object]
uso geral onde os processos são criados e destruídos dinamicamente
Todos processos são periódicos com períodos conhecidos
Os processos são completamente independentes i.e. não se comunicam/sincronizam
entre si (são concorrentes mas não são cooperantes) ,[object Object],(carga máxima processador) ,[object Object]
Todos processos  tem um  deadline  igual ao seu período  (i.e. o processo deve completar
antes ser  novamente disparado)
Todos os processos tem tempo de execução de pior caso (WCET) fixo Ci Di=Ti Um modelo simples de processo
Notação Descrição B tempo de bloqueio de pior caso (se aplicável) C tempo de computação de pior caso (WCET) D deadline I tempo de interferência J jitter de disparo N número de processos no sistema P prioridade atribuída ao processo (se aplicável) R tempo resposta de pior caso T tempo mínimo entre disparos de um  processo (período) U utilização de cada processo (U=C/T)
[object Object]
conjunto de tarefas puramente periódicas
implementado como laço infinito na  main  (C, C++)
Ex: sensor de temperatura deve ser lido a cada 50ms e LCD dever ser atualizado a cada 100ms. main() { // initialization code here while (1)  // major cycle { currTemp = tempRead(); lcdWrite(currTemp); // waste CPU cycles until 50 ms // minor cycle currTemp = tempRead(); // do other stuff // waste CPU cycles until 100 ms } } Fonte: Wikipedia http://en.wikipedia.org/wiki/Cyclic_executive Sistemas determinísticos:  aqueles cujos resultados são determinados por leis de evolução bem definidas ,[object Object],[object Object]
Cyclic Executive Ex: Considere o seguinte conjunto de tarefas Tarefa T (ms) C (ms) a 25 10 b 25 8 c 50 5 d 50 4 e 100 2 25ms 25 25 50 25 10 25 8 5 4 2 Loop Wait_For_Interrupt Procedure_For_A Procedure_For_B Procedure_For_C Wait_For_Interrupt Procedure_For_A Procedure_For_B ... End loop Desvantagens ,[object Object]
Processos com longos períodos ,[object Object]
do ciclo menor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estados de um processo ,[object Object]
Pronto: escalonados por prioridade (obtida das restrições temporais) ,[object Object]
Preemptivo -> preferível (processos prioritários mais reativos) ,[object Object],[object Object]
aguardando evento não-temporal -> processos esporádicos ,[object Object]
Atribuição de prioridade por taxa monotônica Para o modelo simples previamente apresentado, a atribuição de prioridade baseada  no período do processo é  ótima  -> se um conjunto de processos puder ser escalonado utilizando algum algoritmo preemptivo com atribuição fixa de prioridades então também será escalonado utilizando a taxa monotônica Prioridade baseada no período:  Exemplo: quanto maior o inteiro, maior a prioridade (Isto não é consenso!) Processo T P A 25 5 B 60 3 C 42 4 D   105 1 E 75 2 ,[object Object]
Se a seguinte condição for verdadeira, todos os processos cumprirão seus  deadlines : N Limite utilização (%) Uso da CPU (%) Condição do escalonamento 1 100 0-25 Poder de processamento excessivo 2 82,8 26-50 Muito seguro 3 78,0 51-68 Seguro 4 75,7 69 Limite teórico 5 74,3 70-82 Questionável 10 71,8 83-99 Perigoso Inf 69,3 >100 Sobrecarrgado Obs: qualquer conjunto processos com utilização combinada < 69,3%, sempre será escalonável pelo esquema preemptivo baseado em prioridades, onde estas são atribuídas pelo algoritmo de taxa monotônica. ,[object Object]
Exemplo: Conjunto de tarefas  A :  três processos cujas prioridades foram definidas pela taxa monotônica ,[object Object]
Isto é acima do limiar para 3 tarefas (0,78) e, portanto, este conjunto de
tarefas falha no teste de utilização ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
Que está abaixo do limiar para três tarefas (0,78) e, portanto, este conjunto de tarefas atenderá todos os seus  deadlines ,[object Object],[object Object]
[object Object],[object Object]
Que está acima do limiar para três tarefas (0,78), ou seja, o teste falha  mas, apesar disso, o conjunto de tarefas atenderá seus  deadlines suficiente  – passar no teste inplica em atender os  deadlines necessário  – falhar no teste implica em não atender os  deadlines ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
[object Object],[object Object],[object Object]
 
[object Object],[object Object]
Que está acima do limiar de utilização para 3 tarefas (0,78), portanto o teste de utilização falhou
A análise do tempo de resposta mostra que o conjunto de tarefas atenderá todos os seus  deadlines ! ,[object Object],[object Object]

Mais conteúdo relacionado

Semelhante a Escalonamento de Processos em Tempo Real

ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfssuser1d8ddd
 
Administração da Produção - Cronoanalise
Administração da Produção - CronoanaliseAdministração da Produção - Cronoanalise
Administração da Produção - Cronoanalisedouglas
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05Norton Trevisan Roman
 
Introdução ao Controle Automático.ppt
Introdução ao Controle Automático.pptIntrodução ao Controle Automático.ppt
Introdução ao Controle Automático.pptAgnaldoHesko2
 
(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07Norton Trevisan Roman
 
Aula1 - Sistemas Tempo-Real
Aula1 - Sistemas Tempo-RealAula1 - Sistemas Tempo-Real
Aula1 - Sistemas Tempo-Realsestrem
 
Tutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PIDTutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PIDFernando Passold
 
Sintonia de Controladores PID
Sintonia de Controladores PIDSintonia de Controladores PID
Sintonia de Controladores PIDRayner Theodoro
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threadsIsraelCunha
 
Process aware interrupt scheduling and accounting
Process aware interrupt scheduling and accountingProcess aware interrupt scheduling and accounting
Process aware interrupt scheduling and accountingGustavo Carvalho
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
 
GAIN SCHEDULING (GANHO PROGRAMADO)
GAIN SCHEDULING (GANHO PROGRAMADO)GAIN SCHEDULING (GANHO PROGRAMADO)
GAIN SCHEDULING (GANHO PROGRAMADO)Pedro Barata
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)..."Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...WeOp - The Operations Summit
 

Semelhante a Escalonamento de Processos em Tempo Real (20)

ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
Administração da Produção - Cronoanalise
Administração da Produção - CronoanaliseAdministração da Produção - Cronoanalise
Administração da Produção - Cronoanalise
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05
 
Introdução ao Controle Automático.ppt
Introdução ao Controle Automático.pptIntrodução ao Controle Automático.ppt
Introdução ao Controle Automático.ppt
 
(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07
 
Aula1 - Sistemas Tempo-Real
Aula1 - Sistemas Tempo-RealAula1 - Sistemas Tempo-Real
Aula1 - Sistemas Tempo-Real
 
Tutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PIDTutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PID
 
Sintonia de Controladores PID
Sintonia de Controladores PIDSintonia de Controladores PID
Sintonia de Controladores PID
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
S.o aula 1516
S.o aula 1516S.o aula 1516
S.o aula 1516
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threads
 
Process aware interrupt scheduling and accounting
Process aware interrupt scheduling and accountingProcess aware interrupt scheduling and accounting
Process aware interrupt scheduling and accounting
 
GP4US - Teoria das Restrições e Corrente Crítica
GP4US - Teoria das Restrições e Corrente CríticaGP4US - Teoria das Restrições e Corrente Crítica
GP4US - Teoria das Restrições e Corrente Crítica
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
GAIN SCHEDULING (GANHO PROGRAMADO)
GAIN SCHEDULING (GANHO PROGRAMADO)GAIN SCHEDULING (GANHO PROGRAMADO)
GAIN SCHEDULING (GANHO PROGRAMADO)
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
0001
00010001
0001
 
000003 complexidade
000003 complexidade000003 complexidade
000003 complexidade
 
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)..."Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
 

Escalonamento de Processos em Tempo Real

  • 1.
  • 2.
  • 3. e.g.: Linux e Windows
  • 4.
  • 5.
  • 6.
  • 7. uso geral onde os processos são criados e destruídos dinamicamente
  • 8. Todos processos são periódicos com períodos conhecidos
  • 9. Os processos são completamente independentes i.e. não se comunicam/sincronizam
  • 10.
  • 11. Todos processos tem um deadline igual ao seu período (i.e. o processo deve completar
  • 12. antes ser novamente disparado)
  • 13. Todos os processos tem tempo de execução de pior caso (WCET) fixo Ci Di=Ti Um modelo simples de processo
  • 14. Notação Descrição B tempo de bloqueio de pior caso (se aplicável) C tempo de computação de pior caso (WCET) D deadline I tempo de interferência J jitter de disparo N número de processos no sistema P prioridade atribuída ao processo (se aplicável) R tempo resposta de pior caso T tempo mínimo entre disparos de um processo (período) U utilização de cada processo (U=C/T)
  • 15.
  • 16. conjunto de tarefas puramente periódicas
  • 17. implementado como laço infinito na main (C, C++)
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Isto é acima do limiar para 3 tarefas (0,78) e, portanto, este conjunto de
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.  
  • 44.
  • 45. Que está acima do limiar de utilização para 3 tarefas (0,78), portanto o teste de utilização falhou
  • 46.
  • 47.
  • 48. Se o conjunto de tarefas passar no teste, todas elas atenderão seus prazos; se o teste falhar, pelo menos uma tarefa deixará de cumprir seu prazo
  • 49.
  • 50. O pressuposto D=T não é razoável (e.g. rotina de tratamento de erro, violação de sensor em sistema de alarme) -> a invocação é infrequente mas, quando ocorre, deve ser atendida prontamente ( deadline bem pequeno), ou seja, D<T (ou ainda D<<T)
  • 51. O algoritmo do tempo de resposta para escalonamento com prioridade fixa funciona perfeitamente para D<T desde que o critério de parada seja
  • 52.
  • 53. O descuido na definição dos valores de pior caso pode levar a baixa utilização do processador do sistema implementado
  • 54.
  • 55. A regra 2, contudo, assegura que nenhuma tarefa de tempo real crítico perderá seu prazo. Se a regra 2 levar a utilizações inaceitáveis da CPU em execução normal, então deve-se tomar ações para tentar reduzir os tempos de execução (ou taxas de chegada) de pior caso
  • 56.
  • 57. Para D < T, a ordenação de prioridade por prazo monotônico (DMPO: Deadline Monotonic Priority Ordering ) é ótima
  • 58.
  • 59.
  • 60. Se uma tarefa estiver aguardando outra de menor prioridade, diz-se que a primeira está bloqueada
  • 61.
  • 62.
  • 63.
  • 64. Algum bloqueio é inevitável para manter a integridade das regiões críticas (dados compartilhados)
  • 65. Mas o bloqueio de d por b e c é improdutivo e pode afetar a escalonabilidade do sistema
  • 66. Problema: esquema de prioridades fixas. Solução: prioridades dinâmicas -> herança de prioridade
  • 67.
  • 68.
  • 69. Se um processo L4 estiver esperando por L3 e este, por sua vez estiver esperando por L2, então L2 e L3 deverão receber a prioridade de L4
  • 70.
  • 71. Um barramento compartilhado estava sobrecarregado e dados críticos não estavam sendo transferidos
  • 72. Time-out no acesso a estes dados estavam indicando falha e levavam ao reboot
  • 73. A solução foi um patch que ativou a herança de prioridade
  • 74.
  • 75.
  • 76.
  • 77. Immediate ceiling priority protocol (ICPP)
  • 78.
  • 79. máximo uma vez, por tarefas menos prioritárias, durante sua execução
  • 80. Previnem-se os deadlocks
  • 81. Previne-se o bloqueio transitivo
  • 82. Assegura-se a exclusão mútua no acesso aos recursos
  • 83.
  • 84. Cada recurso Rj tem um teto cj que é dado pela maior prioridade entre todos os processos que o utilizam
  • 85. Um processo Pi tem uma prioridade dinâmica pi que é o máximo entre sua prioridade estática pi stat e qualquer prioridade herdada pk de outro processo mais prioritário Pk, devido a Pi ter bloqueado Pk
  • 86. Um processo pode obter um recurso apenas se sua prioridade dinâmica for maior do que o teto de todos os recursos travados (excluindo quaiquer recursos que tenham sido travados pelo próprio processo). A posse do primeiro recurso é assegurada (ceil=0)
  • 87.
  • 88.
  • 89. Cada recurso Rj tem um valor de teto estático cj dado pela prioridade máxima entre todos os processos que o utilizam
  • 90. Um processo Pi tem uma prioridade dinâmica pi que é dada pelo máximo entre sua prioridade estática pi stat e os valores de teto cj de quaisquer recursos que ele travar
  • 91.
  • 92. Uma vez que um processo comece de fato a executar, todos os recursos que ele necessita devem estar livres; se não estiverem , então outro processo terá um prioridade maior ou igual à do primeiro e a execução do primeiro será adiada
  • 93.
  • 94.
  • 95. ICPP leva a menos chaveamentos de contexto já que os bloqueios ocorrem antes da primeira execução
  • 96. ICPP requer mais alterações de prioridade já que isso ocorre em todos os usos de recurso; OCPP altera a prioridade apenas quando um bloqueio ocorre
  • 97.