Please enable JavaScript.
Coggle requires JavaScript to display documents.
Aula 03 (Gerência do processador (Algoritmos de escalonamento (FIFO -…
Aula 03
Gerência do processador
Quando o processo deixa o processador?
Quando termina
quando sai do estado de executando para bloqueado
Interrupção por falta de página (memória)
Interrupção por erros
Por escalonamento
O processo vai ser tirado da CPU se chegou um com maior prioridade ou se o tempo dele esgotou
Escalonamento de processos
Chaveamento de contexto de execução
quando o proceso deixa a CPU para executar posteriormente
Quando um processo recebe a CPU é feita a Reposição do seu contexto
Realizado pelo dispatcher/despachante
Mecanismo típico de sistemas multprogramados
É a entidade do SO responsável por selecioar um processo apto a executar
Os escalonadores podem ser de dois tipos (categorias):
Não-preemptivo
Preemptivo (maior preocupação com a sincronização)
Algoritmos de escalonamento
Determine o critério com o qual o processo será escolhdo para utilizar a CPU
Buscam atingir bom tempo médio e melhor ocupação da CPU
Na definição é importante considerar a existência de processos IO - Bound e CPU - Bound
Importante evitar
Variância
Postergação indefinida (starvation)
O processo acaba sendo sempre adiado indefinidamente
FIFO - First In First Out
Algoritmo mais simples
Retira os processos da fila de aptos na ordem de chegada
Algoritmo não-preemptivo
Mutos processos CPU - Bound podem causar uma queda no desempenho
Tempo médio de espera tende a ser longo
Em sistemas de tempo compartilhado seu uso poderia ser um desastre
Pode ocorrer Postergação Indefinida?
Tempo de Espera = Tempo total - Tamanho do ciclo
SJF (Shortest Job First)
Ordena a fila de aptos de acordo com o menor numero de ciclos
Não Preemptivo
pode ordenar a fila em ordem crescente e decrescente
Favorece processos IO - Bound
Problemas
Como determinar o tempo do próximo ciclo?
Solução: Tentar-se aproximar do escalomaneto SJF projetando o valor do próximo ciclo de CPU
Postergação indefinida pode acontecer
Não é usado
Pioridade
O processo de maior prioridade é escolhido
A prioridade segue em ordem crescente
Pode ser preemptivo e não preemptivo
Pode ter postergação indefinida
Solução:
Algoritmo de envelhecimento
Round Robin (Fatia de tempo)
Cada processo recebe um quantum para utilizar o processador
Quantum é a maior quantidade de ciclos que um processo pode deter a CPU
Algoritmo justo
Projetado para sistemas de tempos compartilhados
Quando um processo é retirado da CPU por ter acabado a sua fatia de tempo é realizado um chaveamento de contexto
Tudo que ta no registrador da CPU é copiado para o bloco descritor do processo
A sua fila é implementada como FIFO
Algoritmo Preemptivo
Problema: Definição do quantum
Muito grande
Muito pequeno
Multiplas flas
usar a ideia de um algoitmo sozinho em uma política de escaloamento é inviável
A fila de aptos pode ser dividida em várias outras
Entre as filas são utilizados algoritmos Preemptivos
Ciclo de vida de um processo
De acordo com os picos dos seus ciclos os processos podem se classificar em:
CPU-bound
Processos com limite de uso da CPU
I/O - bound
Processos com menor utilização da CPU.
Processos de acesso a disco
Muitas entradas e saídas
Essa classificação ajuda a selecionar um algoritmo de escalonamento
"O objeivo da multiprogramação é contar sempre com algum processo em execução para maximizar a utilização da CPÙ"