Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemas Operacionais A - Cap.8 - Gerência do Processador Cezar Augusto…
Sistemas Operacionais A - Cap.8 - Gerência do Processador
Cezar Augusto Crummenauer
Funções básicas da política de escalonamento
Privilegiar a execução de aplicações críticas
Balancear o uso da UCP entre processos
Manter o processador ocupado na maior parte do tempo
Maximizar o throughput do sistema e oferecer tempos de resposta razoáveis para usuários interativos
Cada sistema operacional possui políticas de escalonamento adequadas com os seus propósitos
Escalonador (scheduler) é fundamental em um sistema multiprogramável
Dispatcher - Responsável pela troca de contexto dos processos. O período gasto na troca de contexto de processos é denominada de latência do dispatcher
Critérios de escalonamento
Utilização do processador
É desejável que o processador permaneça a maior parte do tempo ocupado
Throughput
Represente o número de processos executados em um determinado intervalo de tempo. A maximização do throughput é desejada na maioria dos sistemas
Tempo de processador / tempo de UCP
Tempo que um processo fica em estado de execução. Depende da implementação da aplicação do processo e da entrada de dados
Tempo de espera
Tempo total em que um processo permanece na fila de pronto. Deseja-se reduzir esse tempo de espera na maioria dos sistemas
Tempo de turnaround
É o tempo em que um processo leva desde a sua criação até o seu término. As políticas de escalonamento buscam minimizar esse tempo
Tempo de resposta
É o tempo entre a requisição ao sistema ou aplicação e o instante em que a resposta é exibida
Escalonamentos Não-Preemptivos e Preemptivos
Tipos de escalonamento
Escalonamento First-In-First-Out (FIFO)
Impossibilidade de prever quando o processo será executado, já que isso varia em função do tempo de execução dos demais processos
Processos CPU-Bound levam vantagem no uso do processador
Não-preemptivo
O processo que primeiro chegar ao estado de pronto é selecionado para execução
Escalonamento Shortest-Job-First (SJF)
O algoritmo de escalonamento seleciona o processo de menor tempo para executar
Não há forma de prever de forma precisa quanto tempo será utilizado pelo processo
Pode haver starvation em processos que usam muito processador ou que sejam do tipo CPU-Bound
Escalonamento Cooperativo
Processo libera cooperativamente o uso do processador em sistemas não-preemptivos
A interrupção do processo não é responsabilidade do sistema operacional
Encontrado nos primeiros SOs Windows
Escalonamento circular
Preemptivo
Preempção por tempo
Projetado para sistemas de tempo compartilhado
Semelhante ao FIFO
Processos possuem fatias de tempo para executar (time-slice ou quantum)
Novos processos são selecionados de acordo com o FIFO
O valor da fatia de tempo depende da arquitetura do sistema operacional
A principal vantagem do escalonamento circular é não permitir que um processo monopolize a CPU
Processos CPU-Bound tendem a usar mais o processador, por causa que mais comumente usam a fatia de tempo completa
Surge o escalonamento circular virtual para com uma fila auxiliar para os processos que entraram em estado de espera
Escalonamento por prioridades
Preemptivo
O processo com maior prioridade é sempre escolhido para execução
Processos de mesma prioridade são executados seguindo o critério de FIFO
Não existe o conceito de fatia de tempo
Prioridades estáticas ou dinâmicas
Um dos principais problemas é o starvation
Usar a técnica aging de implementação dinâmica que incrementa gradualmente a prioridade de processos que esperam muito na fila de pronto
Escalonamento Circular com Prioridades
Implementa o conceito de fatia de tempo e de prioridade
A principal vantagem é permitir um melhor balanceamento de uso do processador
Amplamente utilizado em sistemas como o Windows e o Unix
Duas variações
Com prioridades estáticas
Com prioridades dinâmicas
Escalonamento por múltiplas filas
Existem diversas filas de processos no estado de pronto, cada qual com uma prioridade específica
Principal vantagem é a possibilidade de convivência de mecanismos de escalonamento distintos
Cada fila pode possuir um um mecanismo próprio, permitindo que alguns processos sejam escalonados com FIFO, enquanto outros pelo circular
A característica de prioridade fica associada a fila e não aos processos
Uma desvantagem é que se o comportamento de um processo for alterado no decorrer do tempo não poderá ser redirecionado para uma fila mais adequada
Escalonamento por múltiplas filas com realimentação
Os processos podem trocar de filas
FIFO adaptado para todas as filas, exceto a última que usa escalonamento circular
Filas de maior prioridade possuem fatias de tempo menores
CPU-Bound possuem tendencia de cair de prioridade
e I/O-Bound possuem tendencia de subir de prioridade
Problemas
Processos que são CPU-bound e se tornam I/O-Bound não conseguem subir na prioridade
Complexidade para desenvolver e maior overhead no sistema
Políticas de escalonamento em sistemas de tempo compartilhado
Processamento interativo, espera-se tempos de respostas baixos
Do ponto de vista do SO os processos são CPU-Bound e I/O-Bound apenas
Implementar prioridade dinâmica é complexo, porem a melhora no tempo de resposta compensa