Please enable JavaScript.
Coggle requires JavaScript to display documents.
Escalonamento da CPU - Coggle Diagram
Escalonamento da CPU
Para Multiprocessadores
Escalonamento mais complexo com múltiplas CPUs disponíveis
Múltiplas CPUs podem fazer compartilhamento de carga
Multiprocessador
Núcleos Multithread
Sistemas NUMA
Processadores Multicore
Multiprocessamento Heterogêneo
Abordagens
Multiprocessamento Assimétrico
Decisões, processamento E/S tratadas por processador único
Reduz a necessidade de compart. de dados
Modelo mais simples
Somente um processador acessa estruturas do sistema
Multiprocessamento Simétrico
Usado por quase todos os SOs atuais
Examina a fila de prontos comum e escolhe um processo
Cada processador é auto-escalonado
Threads podem estar numa única fila de prontos
Cada processador pode ter sua própria fila de threads
Processadores Multicore
Vários núcleos de processamento num único chip
Núcleo = processador lógico separado pro SO
Escalonamento mais complexo
Núcleos irão disputar acesso a memória principal
Balanceamento de Carga
Objetivo
Manter carga de trablho distribuída uniformemente entre processadores
Migração Push
Tarefa verifica carga de cada processador e redistribui
Migração Pull
Processador ocioso puxa tarefa de um processador ocupado
Afinidade de processador
Flexível/Leve
SO mantem o processo em um processador só
Rígida
Processo especifica subconjunto de processadores que ele pode ser executado
Escalonamento de thread
Threads em nível kernel são escalonadas pelo SO
Threads nível usuário são gerenciadas pela biblioteca de threads
Threads usuários precisam ser mapeadas por threads kernel para execução em CPU
Algoritmos de Escalonamento
First Come, First Served
Abordagem não-preempetiva
Processos aptos para exec vão pro final da fila de prontos
Baixa complexidade
Primeiro da fila é executado (longos ou curtos)
Favorece processos CPU-bound
Problemático para sistemas de tempo compartilhado
Shortest Job First
Privilegia processos pequenos diminuindo tempo médio de espera
Impossível de ser implementado
Dificuldade é saber a extensão da próx requisição de CPU
Possível aproximá-lo usando prvisão do próx burst
Não preemptivo: processo não pode ser apropriado até terminar burst
Preemptivo: Shortest Remaining Time First
SRTF: processo chega com burst menor que tempo do processo exec atualmente, apropria
Por prioridade
CPU alocada no processo de maior prioridade
Usada em SO de tempo real
Número de prioridade associado a cada processo
Problema
Estagnação: processos com baixa prioridade podem nunca executar
Solução
Envelhecimento: aumentar a prioridade do processo com o tempo
Round-Robin
SOs de tempo compartilhado
Cada processo rebece unidade de tempo de CPU
Quando tempo acabar, processo é interrompido e vai pro fim da fila de prontos
Multilevel Queue
Divide a fila de pronto em duas
Primeiro plano: Round-Robin
Segundo plano: First Come, First Served
Escalonamento é feito entre as filas
Cada fila recebe quantidade de tempo de CPU
80% de tempo para primeira fila
20% de tempo para segundo plano
Fila Multinível com Feedback
Processo pode se mover entre diversas filas
Job entra na fila 1, se nao terminar vai para a fila 2 com mais tempo
Windows
Escalonamento preemptivo
Thread de maior prioridade será executada
Despachante seleciona um thread
Classe variável: prioridade 1 a 15
Classe de tempo real: prioridade 16 a 31
Gerenciador de memória: prioridade 0
Conceitos Básicos
Despanche
Dá controle da CPU ao processo selecionado para escalonamento
Troca de contexto
Salto para o local apropriado no programa do usuário
Troca para o modo usuário
Latência de despacho
Ciclo de Picos CPU-E/S
Exec de processo = ciclo exec + espera por E/S
Escalonador
Processo executando -> esperando
Processo executando -> pronto
Seleciona processos prontos para executar e aloca a CPU a um deles
Processo esperando -> pronto
Termina
Scheduling
SO atribui CPU a outro processo com instruções para processar
Escalonamento preemptivo
Potencial problema com acesso a dados compartilhados
Termos Importantes
Multiprocessamento
Homogêneo
Processadores idênticos
Heterogêneo
Processadores diferentes
Combinados para melhorar desempenho e eficiência
Multiprocessamento
Simétrico
Todos os processadores tem acesso igualitário a recursos do sistema
Assimétrico
Processadores com diferentes funções e capacidades
Processadores podem executar tarefas específicas
Arquitetura
Heterogênea
Componentes diferentes
Arquitetura, função, capacidade de processamento
Aproveitar vantagens para melhorar desempenho
Buscar eficiência do sistema
Homogênea
Componentes de hardware idênticos
Componentes com mesma função
Critérios de Escalonamento
Maximizar
Throughput
Núm de processos que completam execução por unid de tempo
Utilização de CPU
Manter a CPU tão ocupada quanto possível
Minimizar
Tempo de Espera
Tempo que o Processo espera na fila de prontos
Tempo de Resposta
Solicitação submetida até a resposta ser produzida
Tempo de Turnaround
Tempo para executar um processo em particular