Introdução aos
Sistemas Operacionais
Sistemas Operacionais
Gerência do Processador
Estado de Execução
Estado de Espera
Estado de Execução
Gerência do Processador
• Múltiplos processos na memória principal compartilhando o uso da CPU
• Muitos processos podem estar no estado de pronto
pronto
Gerência do Processador
• Funções básicas da política de escalonamento
– Manter o processador ocupado
– Balancear o uso da CPU entre os processos
– Privilegiar a execução de aplicações críticas
– Privilegiar a execução de aplicações críticas
– Maximizar quantidade de processos num
Gerência do Processador
• Cada sistema operacional possui sua política de escalonamento
• Política de escalonamento é denominada também de escalonador (scheduler).
Gerência do Processador
• Sistemas em tempo compartilhado dependem totalmente do escalonador.
• Dispatcher é a rotina do sistema operacional responsável pela troca de contexto dos responsável pela troca de contexto dos processos, após escalonados
Gerência do Processador
• As características dos sistemas operacionais determinam os principais aspectos para implementação da política de escalonamento
• Critérios usados pelas políticas de
• Critérios usados pelas políticas de escalonamento
Critérios de Escalonamento
• Utilização do processador
– Na maioria dos sistemas é desejável que o
processador permaneça a maior parte do tempo ocupado.
Critérios de Escalonamento
• Throughput
– Numero de processos executados em um
determinado intervalo, quanto maior o throghput, maior o numero de tarefas executadas em função maior o numero de tarefas executadas em função do tempo.
Critérios de Escalonamento
• Tempo de Processador ou CPU
– Tempo que o processo leva no estado de execução
durante seu processamento (10 a 100ms)
• Tempo de Espera
• Tempo de Espera
– Tempo que um processo permanece na fila de
pronto durante seu processamento, aguardando ser executado.
Critérios de Escalonamento
• Tempo de Turnaround
– Tempo que o processo leva desde a sua criação
até seu término, levando consideração todo o tempo gasto na espera para alocação de memória, tempo gasto na espera para alocação de memória, fila de pronto, processamento na CPU e na fila de espera.
Critérios de Escalonamento
• Tempo de Resposta
– É o tempo decorrido entre uma requisição ao
sistema ou à aplicação e o instante em que a resposta é exibida.
Termino do Processo Processos Prontos Criação do Processo Processador Execução
Escalonamento
Gerencia do Processador
• As políticas de escalonamento podem ser classificadas
– Através da possibilidade de interromper um
processo em execução e substituí-lo por outro processo em execução e substituí-lo por outro
– Essa atividade é preempção
Escalonamento não-preemptivo
• Primeiro tipo de escalonamento
implementado em sistemas multitarefa;
• Quando um processo está em execução nenhum evento externo pode ocasionar a nenhum evento externo pode ocasionar a perda do uso do processador;
• Só sai quando termina ou para modo de espera.
Escalonamento Preemptivo
•
Sistema
operacional
pode
interromper
um
processo
em
execução e passá-lo para o estado de
execução e passá-lo para o estado de
pronto
•
Podendo receber outro processo na
Escalonamento Preemptivo
•
Sistemas com preempção, podem
priorizar a execução de processos
•
Implementar
escalonamento
•
Implementar
escalonamento
compartilhados,
distribuindo
de
Introdução aos
Sistemas Operacionais
Sistemas Operacionais
Escalonamento FIFO
Criação Processador Execução Pronto EsperaEscalonamento FIFO
• Processo que chegar primeiro ao estado de
pronto é o selecionado para execução;
• Algoritmo simples, necessitando apenas de uma
fila; fila;
• Quando um processo vai para o estado de espera
outro no estado pronto entra para execução
• Quando o processo em espera voltar para o
Escalonamento FIFO
Processo A Processo B Processo C 10 14 17 u.t. 10 14 17 Processo A Processo B Processo C 4 7 17 u.t. u.t. Processo Tempo de processador (u.t.) A B C 10 4 3Escalonamento SJF (Shortest-Job-First)
• O que der menos trabalho primeiro
• Algoritmo escalonador seleciona para execução os processo que tiver o menor tempo de processador ainda por executar
tempo de processador ainda por executar
• Os processos com menos tempo e no estado de pronto vão para execução.
Escalonamento SJF
Processo A
Processo B
Processo C
Escalonamento SJF
• Base de tempo para o sistema operacional é em função dos programas já executados
• Escalonamento não-premptivo
• Pode ocorrer starvation para processo do tipo
• Pode ocorrer starvation para processo do tipo CPUBound
Escalonamento Cooperativo
• Um processo em execução pode voluntariamente
liberar o processador, retornando a fila de pronto e possibilitando que um novo processo seja executado
• O controle não é dado pelo sistema operacional
• Processo em execução verifica uma fila de
mensagens para verificar se existe outros processos na fila de pronto
Escalonamento Circular
• Escalonamento Preemptivo
• É concedido para cada processo um tempo-limite para uso contínuo do processador
• Preempção por tempo
Escalonamento Circular
• O reescalonamento do processo se dá igualmente ao escalonamento FIFO
• Não permite que o processo monopolize o processador
processador
• Diferenças de balanceamento em processos CPU-Bound e I/O-Bound
Escalonamento Circular
UCP Estado de
Criação
Fila dos processos no estado de Pronto
Estado de Término
Preempção por tempo
Estado de Espera
Escalonamento Circular Virtual
Criação Processador Execução Pronto EsperaEscalonamento por Prioridade
• Escalonamento Preemptivo
• O processo com maior prioridade no estado de
pronto sempre é escolhido primeiro
• Não existe fatia de tempo
• Não existe fatia de tempo
• Só para o processamento por uma mudança
voluntária para o estado de espera
• Prioridade é implementada através de um
Escalonamento por prioridades
Estado de Filas dos processos no estado de Pronto
Prioridade P1 Prioridade P2 Estado de UCP Estado de Término Prioridade Pn Estado de Criação Estado de Espera
Escalonamento Circular com
Prioridade
• Implementa o conceito de fatia de tempo e de prioridade na execução associada a cada
processo
• Nesse tipo de escalonamento, um processo
• Nesse tipo de escalonamento, um processo permanece no estado de execução até que termine seu processamento
• Voluntariamente passa para o estado de
espera ou sofra uma preempção por tempo ou prioridade
Escalonamento Circular com
Prioridade
• Amplamente usado em sistemas com tempo compartilhado
• Permite um melhor balanceamento no uso do processador
processador
• Processo com perfil I/O-Bound tem prioridades maior que os CPU-Bound
Escalonamento Circular com
Prioridade
• Escalonamento Estático
– Prioridade definida no contexto de software de
cada processo permanece inalterada
• Escalonamento Dinâmico
• Escalonamento Dinâmico
– Prioridade pode ser alterada dinamicamente pelo
administrado do sistema ou pelo próprio sistema operacional
Escalonamento por Múltiplas filas
• Processos são associados a filas em função de características próprias, como importância da aplicação, tipo de processamento ou área de memória necessária.
memória necessária.
• Alguns processos pode ser escalonados por FIFO ou por Circular
Escalonamento por Múltiplas filas
Fila de processos do sistema Maior
prioridade
UCP Fila de processos interativos
Fila de processos batch Menor
Escalonamento por múltiplas filas com
Realimentação
• Semelhante ao escalonamento por múltiplas filas
• Permitir ao sistema operacional identificar
dinamicamente o comportamento de cada processo,
direcionando-o para filas com prioridade de
execução
• Processos são enviados para fila de pronto e sim
Escalonamento por múltiplas filas com
Realimentação
• Um mecanismo de FIFO adaptado com fatia de tempo implementado em todas as filas, exceto nas filas de menor prioridade
• Essas utilizam escalonamento circular
Escalonamento por múltiplas filas com
Realimentação
Fila 1 (FIFO Adaptado)
Preempção por tempo Fila 2 (FIFO Adaptado)
M a io r P ri o ri d a d e M e n o r fa ti a d e t e m p o UCP Preempção por tempo
Fila 3 (FIFO Adaptado)
Preempção por tempo
Fila n (Circular)
Preempção por tempo
M e n o r P ri o ri d a d e M a io r fa ti a d e t e m p o