Please enable JavaScript.
Coggle requires JavaScript to display documents.
Escalonamento da CPU - Coggle Diagram
Escalonamento da CPU
Escalonamento para Multiprocessadores
Mais complexo com múltiplas CPUs
Compartilhamento de carga
Abordagens
Multiprocessamento Assimétrico
Processador (mestre) toma todas as decisões
Outros executam apenas código do usuário
Multiprocessamento Assimétrico ≠ Multiprocessamento Heterogêneo
Multiprocessamento Simétrico (SMP)
Cada processador se auto-escalona a partir de uma fila de prontos comum
Duas estratégias
Fila de threads única para todos
Fila separada por processador
Processadores Multicore
Vários núcleos em um chip
Mais eficientes que processadores separados
Escalonamento mais complexo
Núcleos disputam o acesso à memória
Núcleo tem seu próprio cache local
Balanceamento de carga
Distribuir trabalho igualmente entre processadores em SMP
Necessário quando cada processador tem sua própria fila
Tipos
Migração Push
Uma tarefa verifica a carga
Redistribui processos de processadores ocupados para ociosos
Migração Pull
Processador ocioso puxa tarefa de um processador ocupado
mutuamente exclusivos
Afinidade de processador
Evita inconsistência de cache
Mantem threads/processos no mesmo processador
Tipos
Afinidade flexível
SO tenta manter o processo em um único processador
Permite migração
Afinidade rígida
Processo especifica um subconjunto de processadores para ser executado
Escalonamento de thread
Threads no nível de kernel
Escalonadas pelo SO, não os processos
Threads em nível de usuário
Gerenciadas pela biblioteca de threads
Não são conhecidas pelo kernel
Precisam ser mapeadas a uma thread no nível do kernel