Android
Infra-estrutura de Software
Infra-
Escalonamento de Processos
Professor:
Anderson Fabiano B. F. da Costa afbfc@cin.ufpe.br Introdução
O escalonador é a entidade do sistema operacional responsável por selecionar um processo apto para executar no processador
O objetivo é dividir o tempo de forma justa entre os processos prontos a execução
Dependendo do tipo de sistema (batch, time-sharing, multiprogramado ou tempo real) há requisitos e restrições diferentes na utilização da CPU
Duas partes
Escalonador (política de seleção) e Dispacther (troca de contexto) 2
Objetivos do Escalonamento
Níveis de Escalonamento
Maximizar a utilização do processador
Alto Nível: determina quais programas são admitidos no sistema. Limita ainda tempo de execução, quantidade de páginas a serem impressas, dificulta o acesso de usuários não cadastrados. Maximizar a produção do sistema (throughput)
Número de processos executados por unidade de tempo
Maximizar o tempo de execução (turnaround)
Tempo total para executar um determinado processo
Médio Nível ou Intermediário: são governados principalmente por eventos do tipo do tipo E/S, determinando o tipo de transação de estado que deve ocorrer. Minimizar o tempo de espera
Tempo em que o processo permanece na lista de prontos
Baixo Nível: determina quais processo em PRONTO que podem passar para o controle da CPU
É o mais difícil de implementar! (E o mais importante)
Minimizar o tempo de resposta
3
Estratégia de Escalonamento
Outra nomenclatura: longo, médio e curto prazo
4
Escalonamento FIFO
Há dois tipos de escalonamento de baixo nível
Preemptivo e não-preemptivo
Não-preemptivo: assume controle total da CPU, mantendo seu controle até concluir o processo.
É o mais simples, porém, tem a desvantagem de não permitir que outro processo possa compartilhar da CPU.
Preemptivo: o SO cede a CPU ao processo, porém poderá