processos e escalonamentoprocessos e escalonamentosimone/scminter/contaulas/10_procs.pdf ·...
TRANSCRIPT
![Page 1: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/1.jpg)
Sistemas de Computação
Processos e escalonamentoProcessos e escalonamento
![Page 2: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/2.jpg)
Sistemas de Computação
Sistema operacional
• Programa que age como intermediário entre o usuário de um computador e o hardware
• Objetivos:– Executar programas do usuário e facilitar a resolução de
problemas– Tornar o sistema de computação mais conveniente para uso
• Utiliza o hardware de maneira eficiente
![Page 3: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/3.jpg)
Sistemas de Computação
Visão abstrata dos componentes de um sistema de computação
![Page 4: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/4.jpg)
Sistemas de Computação
Funções executadas pelo S.O
• Gerencia e aloca recursos
• Controla a execução de programas de usuário e operações de entrada e saída
• Núcleo do S.O fica executando todo o tempo
![Page 5: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/5.jpg)
Sistemas de Computação
Esquema de memória para sistema simples de batch
![Page 6: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/6.jpg)
Sistemas de Computação
Sistemas batch multiprogramados
• Vários jobs são colocados na memória principal ao mesmo tempo e a CPU é multiplexada entre eles.
![Page 7: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/7.jpg)
Sistemas de Computação
Características necessárias para multiprogramação
• Rotinas de E/S fornecidas pelo S.O
• Memória deve ser alocada aos diversos jobs pelo S.O
• Sistema deve escolher entre os jobs prontos para serem executados, aquele que realmente seráexecutado
• Alocação de dispositivos
![Page 8: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/8.jpg)
Sistemas de Computação
Sistemas time-sharing –computação interativa
• A CPU é multiplexada entre vários jobs que estão na memória e no disco ( a CPU é alocada para um job somente se ele estiver na memória)
• Um job fica sendo trocado de lugar entre memória e disco
• Comunicação on-line entre o usuário e o sistema éfornecida; quando o S.O finaliza a execução de um comando, ele procura pelo próximo comando digitado no teclado
• Sistemas on-line têm que estar disponíveis para acesso a dados e código
![Page 9: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/9.jpg)
Sistemas de Computação
Processos
• Um sistema operacional executa uma variedade de programas:
– Sistemas batch – jobs– Sistemas time-shared – programas de usuário ou tarefas (tasks)
• Os termos job e processo são utilizados para designar a mesma coisa
• Processo é um programa em execução realizada de maneira seqüencial
• Um processo inclui:– contador de programa– pilha (stack)– seção de dados
![Page 10: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/10.jpg)
Sistemas de Computação
Estado do processo
• À medida que o processo é executado, ele troca de estado
– novo: O processo está sendo criado– em execução (running): Instruções estão sendo executadas – suspenso (waiting): O processo está esperando pela ocorrência
de um evento– pronto (ready): O processo está pronto para ser designado para
a CPU– terminado (terminated): O processo acabou sua execução
![Page 11: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/11.jpg)
Sistemas de Computação
Diagrama de estados do processo
![Page 12: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/12.jpg)
Sistemas de Computação
Bloco de controle de processos
• Informação associada a cada processo
• Estado do processo
• Contador de processo
• Registradores de CPU
• Informações para escalonamento de CPU
• Informações para gerenciamento de memória
• Informações para tarifação
• Informações de estado de E/S
![Page 13: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/13.jpg)
Sistemas de Computação
Bloco de controle de processo
![Page 14: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/14.jpg)
Sistemas de Computação
Chaveamento da CPU
![Page 15: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/15.jpg)
Sistemas de Computação
Processos concorrentes
• Os processos podem executar concorrentemente no sistema
• Compartilhamento de recursos físicos
• Compartilhamento de recursos lógicos
• Aceleração da computação
• Modularidade
• Conveniência
![Page 16: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/16.jpg)
Sistemas de Computação
Criação de processos
• Um processo pai cria processos filhos, que por sua vez criam outros processos, formando uma árvore de processos
• Compartilhamento de recursos– Pais e filhos compartilham todos os recursos– Filhos compartilham um subconjunto dos recursos do pai– Pais e filhos não compartilham recursos
• Execução– Pai e filhos executam concorrentemente– Pai espera filhos acabarem
![Page 17: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/17.jpg)
Sistemas de Computação
Criação de processos
• Espaço de endereçamento– Filho duplica espaço do pai– Filho tem um programa carregado neste espaço
• Exemplos em UNIX– fork chamada do sistema para criar processo novo– exec chamada do sistema utilizada após um fork para carregar um
novo programa no espaço de memória do processo
![Page 18: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/18.jpg)
Sistemas de Computação
Árvore de processos em um sistema UNIX
![Page 19: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/19.jpg)
Sistemas de Computação
Término de um processo
• Processo executa a última instrução e pede para o sistema operacional finalizá-lo (exit).
– Dados passam do filho para pai (via wait).– Recursos do processo são liberados pelo sistema operacional
• Pai pode terminar a execução de processos filhos (abort).
– Filho excedeu recursos alocados.– Tarefa designada para o filho não é mais necessária– Pai está finalizando sua execução
• S.O não permite que um filho continue executando se o pai terminou execução
• Terminação em cascata
![Page 20: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/20.jpg)
Sistemas de Computação
Escalonamento
• Maior utilização da CPU com multiprogramação
• Ciclo de burst de CPU e E/S – Execução de um processo consiste de ciclo de execução de CPU e espera por E/S
• Sistema operacional passa o controle da CPU para outro programa quando o que está sendo executado tem que esperar
![Page 21: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/21.jpg)
Sistemas de Computação
Filas para escalonamento de processos
• Filas de jobs – conjunto de todos os processos do sistema
• Fila de prontos – conjunto de todos os processos residentes na memória principal, prontos e esperando para serem executados pela CPU
• Fila de dispositivos – conjunto de processos esperando por um dispositivo de E/S
• Os processos migram entre as diversas filas
![Page 22: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/22.jpg)
Sistemas de Computação
Fila de prontos e várias filas de dispositivos de E/S
![Page 23: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/23.jpg)
Sistemas de Computação
Representação do escalonamento de processos
![Page 24: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/24.jpg)
Sistemas de Computação
Escalonadores
• Long-term scheduler (ou job scheduler) –seleciona os processos que devem ser trazidos para a fila de prontos
• Short-term scheduler (ou CPU scheduler) –seleciona o processo que deverá ser o próximo a ser executado pela CPU e aloca a CPU para ele
![Page 25: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/25.jpg)
Sistemas de Computação
Escalonador de médio prazo
![Page 26: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/26.jpg)
Sistemas de Computação
Escalonadores
• Short-term scheduler é acionado muito freqüentemente (milisegundos) (tem que ser rápido).
• Long-term scheduler é acionado mais raramente (segundos, minutos) (pode ser lento).
• O long-term scheduler controla o grau de multiprogramação
• Processos podem ser descritos como:– Processo I/O-bound – gasta a maior parte do tempo executando
E/S que computação, vários bursts de CPU curtos.– Processo CPU-bound – gasta a maior parte do tempo realizando
computação, poucos bursts de CPU de longa duração
![Page 27: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/27.jpg)
Sistemas de Computação
Chaveamento de contexto
• Quando a CPU chaveia para outro processo, o sistema tem que salvar o estado do processo que estava sendo executado e carregar o estado guardado do novo processo
• Tempo de chaveamento de processo introduz overhead; o sistema não realiza trabalho útil neste tempo
• Tempo depende do suporte de hardware existente
![Page 28: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/28.jpg)
Sistemas de Computação
Seqüência de bursts de CPU e E/S
![Page 29: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/29.jpg)
Sistemas de Computação
Escalonamento da CPU
• Seleciona um entre os processos prontos que estão na memória para ser executado e aloca a CPU para ele
• As decisões de escalonamento da CPU podem ocorrer quando um processo:
1. Troca do estado executando para suspenso2. Troca do estado executando para pronto3. Troca do estado suspenso para pronto 4. Termina
• Escalonamento realizado nos casos 1 e 4 é não preemptivo.
• Os outros são preemptivos.
![Page 30: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/30.jpg)
Sistemas de Computação
Chaveamento de contexto
• Quando a CPU chaveia para outro processo, o sistema tem que salvar o estado do processo que estava sendo executado e carregar o estado guardado do novo processo
• Tempo de chaveamento de processo introduz overhead; o sistema não realiza trabalho útil neste tempo
• Tempo depende do suporte de hardware existente
![Page 31: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/31.jpg)
Sistemas de Computação
Dispatcher
• O módulo dispatcher dá o controle da CPU para o processo selecionado pelo short-term scheduler; que envolve:
– trocar o contexto– mudar o modo para modo usuário– desviar para o endereço apropriado do programa do usuário
• Latência de despacho – tempo gasto pelo dispatcher para parar um processo e iniciar a execução de outro
![Page 32: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/32.jpg)
Sistemas de Computação
Critérios para escalonamento
• Utilização de CPU – mantém a CPU ocupada o maior tempo possível
• Throughput – número de processos que completam sua execução por unidade de tempo
• Turnaround time – quantidade de tempo para executar um determinado processo
• Waiting time – tempo que o processo fica na fila de prontos
• Tempo de resposta – tempo para produzir a primeira resposta a um pedido em sistemas de tempo compartilhado
![Page 33: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/33.jpg)
Sistemas de Computação
Critérios de otimização
• Max utilização de CPU
• Max throughput
• Min turnaround time
• Min waiting time
• Min tempo de resposta
![Page 34: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/34.jpg)
Sistemas de Computação
P1 P2 P3
24 27 300
First-Come, First-Served (FCFS)
Processo Tempo de burstP1 24P2 3P3 3
• Suponha que os processos chegam na ordem : P1 , P2, P3 A carta de Gantt ilustra a situação:
Tempo de espera para P1 = 0; P2 = 24; P3 = 27Tempo médio de espera: (0 + 24 + 27)/3 = 17
![Page 35: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/35.jpg)
Sistemas de Computação
P1P3P2
63 300
FCFS (Cont.)
• Suponha que os processos cheguem na ordem P2 , P3 , P1 .
• A carta de Gantt para esta situação:
Tempo de espera para P1 = 6; P2 = 0; P3 = 3Tempo médio de espera: (6 + 0 + 3)/3 = 3Melhor que caso anterior
![Page 36: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/36.jpg)
Sistemas de Computação
Shortest-Job-First (SJF)
• Associa a cada processo a duração do seu próximo CPU burst e escalona o processo com o menor tempo:
• Dois esquemas: – não preemptivo – a partir do momento que um processo adquiriu a
CPU, ela fica associada a ele até que o seu CPU burst acabe– preemptivo – se um novo processo chega com um CPU burst
menor que o tempo que ainda resta para que o processo corrente termine a sua execução, o novo processo toma o lugar do corrente (SRTF - Shortest-Remaining-Time-First ).
• SJF é ótimo – fornece o menor tempo de espera médio para um dado conjunto de processos
![Page 37: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/37.jpg)
Sistemas de Computação
Processo Tempo de chegada Tempo de burstP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4
• SJF (não preemptivo)
• Tempo médio de espera = (0 + 6 + 3 + 7)/4 - 4
Exemplo de SJF não preemptivo
P1 P3 P2
73 160
P4
8 12
![Page 38: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/38.jpg)
Sistemas de Computação
Exemplo de SJF preemptivo
Processo Tempo de chegada Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4
• SJF (preemptivo)
• Tempo médio de espera = (9 + 1 + 0 +2)/4 - 3
P1 P3P2
42 110
P4
5 7
P2 P1
16
![Page 39: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/39.jpg)
Sistemas de Computação
:Define 4.10 , 3.
burst CPU next the for value predicted 2.burst CPU of lenght actual 1.
1n
thn nt
.t nnn 11
Como determinar duração de próximo CPU burst ?
• Só pode ser estimado
• Pode ser estimado realizando-se uma média exponencial dos valores de duração de bursts de CPU prévios
![Page 40: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/40.jpg)
Sistemas de Computação
Predição da duração do próximo CPU burst
![Page 41: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/41.jpg)
Sistemas de Computação
Exemplos
• =0– n+1 = n
– História recente não conta
• =1– n+1 = tn
– Somente os últimos bursts são levados em conta
![Page 42: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/42.jpg)
Sistemas de Computação
Escalonamento de prioridades
• Um número inteiro de prioridade é associado a cada processo
• A CPU é alocada ao processo de maior prioridade (menor inteiro = maior prioridade)
– Preemptivo– não preemptivo
• SJF é um escalonamento de prioridades onde a prioridade é o próximo tempo previsto de burst de CPU
• Problema Starvation – processos de baixa prioridade nunca são executados
• Solução Aging – à medida que o tempo passa a prioridade do processo aumenta
![Page 43: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/43.jpg)
Sistemas de Computação
Round Robin (RR)
• Cada processo recebe uma pequena unidade de tempo da CPU (time quantum), geralmente 10-100 milisegundos . Quando este tempo se esgota, o processo para de ser executado e vai para o final da fila de prontos
• Se existem n processos na fila de prontos e o time quantum é q, então cada processo recebe de cada vez no máximo q unidades de tempo. Nenhum processo espera mais que (n-1)q unidades de tempo para ser executado pela CPU.
• Desempenho– q grande FIFO– q pequeno q deve ser grande em relação ao tempo de troca de
contexto, senão overhead é muito grande
![Page 44: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/44.jpg)
Sistemas de Computação
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Exemplo de RR com time quantum = 20
Processo Tempo de burstP1 53P2 17P3 68P4 24
Carta de Gantt:
• Maior média para turnaround time que SJF, mas melhor tempo de resposta
![Page 45: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/45.jpg)
Sistemas de Computação
Time quantum e tempo de troca de contexto
![Page 46: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/46.jpg)
Sistemas de Computação
Turnaround time varia com o time quantum
![Page 47: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/47.jpg)
Sistemas de Computação
Múltiplas filas
• A fila de prontos é particionada em filas separadas que possuem seu próprio algoritmo de escalonamento
– foreground (interativas) - RR– background (batch) - FCFS
• Escalonamento tem que ser realizado entre as filas– Escalonamento de prioridades fixas ( serve todos da fila
foreground depois da background). Possibilidade de starvation.– Fatia de tempo – cada fila recebe uma certa quantidade de tempo
da CPU que é escalonada entre os processos da fila( 80% paraforeground em RR, 20% para background em FCFS)
![Page 48: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/48.jpg)
Sistemas de Computação
Múltiplas filas
![Page 49: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/49.jpg)
Sistemas de Computação
Múltiplas filas com realimentação
• Um processo pode mudar de fila
• Definido pelos seguintes parâmetros:– número de filas– algoritmos de escalonamento de cada fila– método utilizado para determinar quando um processo deve ir para
fila de maior prioridade – método utilizado para determinar quando um processo deve ir para
fila de menor prioridade– método utilizado para determinar em qual fila o processo deve
entrar quando precisa de serviço
![Page 50: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/50.jpg)
Sistemas de Computação
Exemplo de múltiplas filas com realimentação
• Três filas: – Q0 – time quantum 8 milisegundos– Q1 – time quantum 16 milisegundos– Q2 – FCFS
• Escalonamento– Um processo novo entra na fila Q0 que é servida por FCFS.
Quando ele ganha a CPU, ele recebe 8 millisegundos. Se ele não acaba em 8 milisegundos, ele é movido para fila Q1.
– Na fila Q1, o processo é servido por FCFS e recebe 16 milisegundos adicionais. Caso ele ainda não tenha acabado, ele émovido para a fila Q2.
![Page 51: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/51.jpg)
Sistemas de Computação
Múltiplas filas com realimentação
![Page 52: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/52.jpg)
Sistemas de Computação
Avaliação dos algoritmos
• Modelagem determinística – obtém uma carga de trabalho pré determinada e específica e define o desempenho de cada algoritmo para esta carga
• Modelos de filas
• Implementação
![Page 53: Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf · Escalonamento da CPU • Seleciona um entre os processos prontos que estão na mem ó ria](https://reader033.vdocuments.site/reader033/viewer/2022043001/5f7a805805d43023ce0f08ea/html5/thumbnails/53.jpg)
Sistemas de Computação
Avaliação por simulação