Please enable JavaScript.
Coggle requires JavaScript to display documents.
Escalonamento da CPU - Coggle Diagram
Escalonamento da CPU
Escalonamento para multiprocessadores
Há compartilhamento de carga
Distribuição eficiente das tarefas entre CPUs disponiveis
Abordagens
Multiprocessamento Assimétrico
Decisões de escalonamento centralizada em um processador único
Multiprocessamento Simétrico
Cada processador é auto-escalonado
Modelo usado em quase todos os sistemas atuais
Estratégias possíveis
Fila comum de prontos
Cada processador possui uma fila de threads
Processadores Multicore
Vários núcleos de processamento em um chip
Um motivo para suportarem mais de uma thread por núcleo
Escalonamento mais complexo
Disputa do acesso a memória principal (memory stall)
Cada núcleo possui seu cache, ao mudar de núcleo, o processo perde acesso aos dados armazenados anteriormente
O escalonador precisa saber qual núcleo lógico está ocupado
Balanceamento de carga
Distribuição uniforme entre os processadores
Necessária em processadores com sua própria fila de processos
Tipos
Migração pull: processador ocioso puxa um processo de outro ocupado
Migração push: verificação e redistribuição de carga periódica
Afinidade de processador
Problema da continuidade de dados entre caches
Flexível/leve
SO busca manter o processo em um mesmo processador, mas pode mudar
Rígida
O processo possui uma lista especifica de processadores que pode ser executado
Escalonamento de threads
Apenas threads em nível de kernel são escalonados
Uso de um LWP para mapeamento das de nível de usuário
Conceitos
A multiprogreamação serve para evitar ociosidade da CPU
Alocação de processos prontos a CPU
Ciclo de Picos CPU-E/S
Ciclo de execução + espera por E/S
Decisões de escalonamento
Passa de executando para esperando
Termina
Não preemptivo/colaborativo
Não há alternativa ao escalonador
A decisão de liberação da CPU é do processo
Passa de executando para pronto
Passsa de esperando para pronto
Escalonamento preemptivo
A decisão de liberação da CPU é do SO
Potencial problema com acesso a dados compartilhados
Despachante (dispatcher)
Efetua a troca de posse da CPU
Troca de contexto
Troca para modo usuário
Salto para o local apropriado para retornar a execução deste programa
Latência de despacho: tempo para a troca de processo em execução
Critérios de escalonamento
Utilização de CPU: Máximo de tempo com a CPU ocupada
Throughput (vazão): Número de processsos finalizados por unidade de tempo
Tempo de Turnaround (tempo de retorno): Tempo total para a finalização de um determinado processo
Tempo de espera: tempo do processo na fila de prontos
Tempo de resposta: tempo entre a submissão e a produção da primeira resposta
Arquiteturas
Homogênea
Componentes iguais e com mesma função
Heterogênea
Componentes diferentes entre si
Multiprocessamento
Homogêneo
Núcleos idênticos
Heterogêneo
Núcleos diferentes organizados para melhor desempenho