Sistemas Operacionais – Gerência do Processador

Juliana Jenny Kolb

teste seu conhecimento

Home > Sistemas Operacionais

Sistemas Operacionais – Gerência do Processador

O gerenciamento do processador surgiu com os sistemas multiprogramáveis, onde vários processos estão residindo na memória principal, compartilhando o uso da CPU.

Funções Básicas da Gerência do Processados

  • Manter o processador ocupado a maior parte do tempo;
  • Balancear o uso da CPU entre os processos;
  • Privilegiar o uso da aplicações críticas;
  • Maximizar o throughput (taxa em que os dados são transmitidos) do sistema;
  • Oferecer tempos de respostas razoáveis aos usuários.

processos so

*processo fica em espera/bloqueado quando necessita aguardar um recurso externo.

Escalonador (Scheduler)

Escalonador é a rotina do SO responsável por implementar os critérios da política de escalonamento. Todo compartilhamento de uso da CPU é dependente dessa rotina.

Dispatcher

Rotina do SO responsável pela troca de contextos dos processos. O período de tempo gasto na troca do processo por outro chama-se latência do dispatcher.

Critérios de Escalonamento

São implementadas de acordo com as características de cada SO.

Exemplos:

  • Tempo Compartilhado (Time Sharing): todos os processos são tratados de forma igual.
  • Tempo Real (Real Time): a execução de processos críticos é priorizado em detrimento de outros processos.

Principais critérios considerados em uma política de escalonamento:

  • Utilização do processador: maximização do uso do processador;
  • Throughput: número de processos executados em determinado intervalo de tempo;
  • Tempo de Processador (CPU): tempo que um processo leva no estado de execução;
  • Tempo de Espera: tempo total de um processo na fila de pronto;
  • Tempo de Turnaround: tempo de um processo desde sua criação até seu término (alocação de memória, fila de pronto (tempo de espera), tempo de CPU, e na fila de espera);
  • Tempo de Resposta: tempo decorrido entre uma requisição ao sistema e o instante da resposta. Mais limitada pela velocidade dos dispositivos de E/S do que pela velocidade do processamento.

As políticas de escalonamento visam:

  • Maximizar utilização do processador e throughput;
  • Diminuir os tempos de turnaround, espera e resposta.

*Quando um processo nunca é executado, pois os de maior prioridade sempre o impedem, essa situação é chamada de starvation.

Tipos de Escalonamento

  • Não-Preemptivo: nenhum evento externo pode ocasionar a perda do processador. O evento sairá de execução apenas quando no:
    • Término de sua execução;
    • Instrução do próprio código, mudando seu estado para “espera” ou “bloqueado”.
  • Preemptivo: o SO pode interromper um processo em execução, passando para o estado de “pronto”, alocando outro processo para o uso da CPU.

Algoritmos de Escalonamento

  • Não-Preemptivos:
    • FIFO ou FCFS: primeiro processo na fila de pronto, será o primeiro a ser escalonado/executado.
      • Desvantagens: impossibilidade de prever quando o processo terá sua execução iniciada;
    • SJF: seleciona o processo que tiver menor tempo de processador para processar.
    • Cooperativo: aumentam o grau de multiprogramação em políticas de escalonamento não-preemptiva, como o FIFO e o SJF. O processo em execução pode voluntariamente liberar o processador retornando a fila de pronto.
  • Preemptivos:
    • SRT: versão preemptiva do SJF, selecionando os processos de menor tempo de processador.
    • Round Robin: semelhante ao FIFO. Trabalha com conceito de fatia de tempo (time-slice) ou quantum de uso do processador.
    • Prioridade: baseado em um valor associado a cada processo.
      • O processo com maior prioridade são escalonados. Os processos com mesma prioridade utilizam critério FIFO;
      • Preempção implementada por interrupção de clock;
      • Pode gerar starvation;
      • Técnica de aging: incremento gradual de prioridade nos processos há tempo na fila de pronto.
    • Circular por Prioridade: baseado nos conceitos de fatia de tempo e prioridade de execução.
    • Múltiplas Filas: implementa diversas filas de processo em estado de “pronto”. O SO apenas poderá escalonar processos de determinada fila, se todas as outras filas de maior prioridade estiverem vazias.
      • Cada fila possui prioridades específicas:
        • importância para a aplicação;
        • tipo de processamento;
        • área de memória necessária.