🖥️ Administração do Tempo de Processador
Gestão eficiente da CPU: algoritmos de escalonamento, multitarefa e otimização do desempenho do sistema.
O que é Administração do Tempo de CPU?
A administração do tempo de processador é uma função fundamental do sistema operacional que decide qual processo obtém acesso à CPU e por quanto tempo, maximizando a utilização do processador e garantindo um tempo de resposta justo para todos os processos.
- Aloca tempo de CPU para múltiplos processos
- Maximiza a utilização do processador
- Minimiza o tempo de resposta
- Garante equidade entre processos
Objetivos do Escalonamento de CPU
Os algoritmos de escalonamento buscam equilibrar vários objetivos, às vezes contraditórios, para otimizar o desempenho geral do sistema.
- Máxima utilização da CPU: Manter a CPU ocupada o maior tempo possível
- Máximo rendimento (throughput): Maior número de processos completados por unidade de tempo
- Tempo de retorno mínimo: Menor tempo entre a chegada e finalização de um processo
- Tempo de espera mínimo: Menor tempo que os processos passam na fila de prontos
- Tempo de resposta mínimo: Para sistemas interativos
Estados de um Processo
Os processos mudam de estado durante sua execução. O escalonamento de CPU gerencia as transições entre esses estados.
- Novo (New): Processo recém-criado
- Pronto (Ready): Esperando alocação de CPU
- Execução (Running): Instruções sendo executadas
- Espera (Waiting): Esperando por um evento (E/S)
- Terminado (Terminated): Processo finalizado
Troca de Contexto (Context Switch)
Operação onde o sistema salva o estado de um processo e carrega o estado de outro para que possa continuar sua execução. Embora necessário, introduz overhead no sistema.
- Salva estado do processo saindo (registradores, PC, estado)
- Carrega estado do processo entrando
- Atualiza tabelas de administração
- Inclui overhead de tempo puro
- Sistemas modernos otimizam esta operação
Tipos de Escalonamento
Existem diferentes níveis de escalonamento conforme quando e com que frequência tomam decisões sobre a alocação de CPU.
- Escalonamento de longo prazo (Admissão): Decide quais processos entram no sistema
- Escalonamento de médio prazo (Swapping): Transfere processos entre memória principal e secundária
- Escalonamento de curto prazo (CPU): Seleciona qual processo executa a seguir (a cada milissegundo)
- Escalonamento em tempo real: Para sistemas com restrições temporais estritas
Dispatcher (Despachador)
Módulo do sistema operacional que entrega o controle da CPU ao processo selecionado pelo escalonador de curto prazo.
- Realiza a troca de contexto
- Muda para o modo de usuário
- Salta para a localização adequada no programa do usuário
- Sua velocidade afeta diretamente o overhead do sistema
- Tempo de despacho: tempo que leva para parar um processo e começar outro
⚙️ Algoritmos de Escalonamento de CPU
Diferentes algoritmos utilizados pelos sistemas operacionais para decidir a ordem de execução dos processos. Cada um tem suas vantagens e desvantagens conforme o contexto.
O processo que chega primeiro é o primeiro a ser atendido. Implementação simples mas pode causar o "efeito comboio".
Vantagens
- Fácil de implementar
- Justo na ordem de chegada
- Sem inanição (starvation)
Desvantagens
- Tempo de espera médio alto
- Não é adequado para sistemas interativos
- Efeito comboio com processos longos
Executa primeiro o processo com o menor tempo de rajada seguinte. Pode ser preemptivo (SRTF) ou não preemptivo.
Vantagens
- Tempo de espera mínimo
- Máximo throughput
- Ótimo para minimizar tempo de espera
Desvantagens
- Difícil prever tempos de rajada
- Pode causar inanição a processos longos
- Não é justo com processos longos
Cada processo obtém uma pequena unidade de tempo de CPU (quantum), circulando entre todos os processos prontos.
Vantagens
- Justo para todos os processos
- Bom tempo de resposta
- Adequado para sistemas interativos
Desvantagens
- Muitas trocas de contexto se quantum for pequeno
- Baixo throughput se quantum for muito pequeno
- Depende fortemente do tamanho do quantum
Cada processo tem uma prioridade associada. O processo com maior prioridade executa primeiro. Pode ser preemptivo ou não.
Vantagens
- Flexível para diferentes necessidades
- Importante para sistemas de tempo real
- Permite dar preferência a processos críticos
Desvantagens
- Pode causar inanição a processos de baixa prioridade
- Problema de inversão de prioridades
- Determinar prioridades pode ser complexo
📈 Visualização de Escalonamento de Processos
Simulação de como múltiplos processos competem pelo tempo de CPU e são gerenciados pelo escalonador do sistema operacional.
