quinta-feira, 3 de dezembro de 2009

Sistema de Escalonamento

Objectivos do escalonamento

Optimizar a performance do sistema de acordo com um critério

  • Dividir a capacidade de processamento da UCP entre vários processos
  1. Diminuir o tempo de resposta (sistemas de Tempo-Real)

Como?
  • Alguns exemplos:
  1. Quando um processo está à espera (por ex: de uma operação de I/O ou de um sinal), outro processo pode entrar em funcionamento
  2. Periodicamente é retirado um processo e substituído pelo próximo na fila de ready

Escalonando da UCP

O escalonador selecciona entre os processos na fila de Ready, aqueles que devem entrar em execução de seguida

A decisão de escalonamento pode ser feita nas seguintes circunstâncias:

1. O processo comuta do estado Running para o estado Waiting (pedido de I/O, evocação da função wait())

  1. O processo comuta do estado Running para o estado Ready (ocorrência de uma interrupção)
  2. O processo comuta do estado Waiting para o estado Ready (termina um pedido de I/O)
  3. O processo termina

Diagrama de Estados










Tipos de Escalonamento

Escalonamento não preemptivo:


  • O escalonador apenas pode efectuar a comutação entre processos quando o processo termina ou passa para o estado de Waiting
  • Exemplo: Windows 3.1 e Apple Macintosh OS

Escalonamento preemptivo:

  • O escalonador pode interromper a execução de um processo antes que este tenha terminado

Estrutura de um Escalonador

Sem comentários:

Enviar um comentário