Você está na página 1de 21

DCC062 Sistemas Operacionais

Cap. 2 Processos
Parte 3
Prof. Eduardo Pagani Julio
eduardo.pagani@ice.ufjf.br

Dep. Cincia da Computao

Escalonamento de Processos
Multiprogramao
Diversos processos competem pela CPU Cabe ao sistema operacional decidir o momento em que cada processo obter a CPU

Escalonador de processos
Subsistema do S.O. responsvel por tal deciso Utiliza um (ou at vrios) algoritmos de escalonamento que estabelecem a lgica de tal deciso

Escalonamento vs. trocas de contexto Tempo gasto com chaveamento do modo usurio para o modo ncleo
Dep. Cincia da Computao

Comportamento de Processos

(a) Processo CPU-bound ou orientado a CPU (b) Processo I/O-bound ou orientado a E/S

Dep. Cincia da Computao

Quando escalonar?
Quando se faz necessria a escolha do prximo processo a obter a CPU? Criao de um processo Trmino de um processo Processo bloqueado Aps uma Interrupo Periodicamente, a cada k inter. de relgio
Escalonamento preemptivo. Escolher um processo e lhe conceder a CPU durante um certo tempo. Findado o tempo, a CPU concedida a outro processo. Escalonamento no-preemptivo. Decises de escalonamento apenas nas situaes anteriores.
Dep. Cincia da Computao

Escalonamento No-Preemptivo

Escalonamento Preemptivo

Categorias de algoritmos de escalonamento


Escalonamento de processos pode envolver diferentes tipos de requisitos, seguindo assim diferentes parmetros e diferentes lgicas Classificao segundo o tipo de sistema, tipo de aplicao... Tanenbaum
Sistemas em Lote Sistemas Interativos Sistemas de Tempo Real

Dep. Cincia da Computao

Objetivos de Algoritmos de Escalonamento

Dep. Cincia da Computao

Escalonamento em Sistemas em Lote


Primeiro a chegar, primeiro a ser servido
First come, first served (FCFS) CPU atribuda a processos na ordem em que a requisitaram Uma nica fila de processos prontos Novos jobs entram no fim da fila Simples e justo Desvantagem
CPU-bound vs. I/O-bound Preempo faz falta
Dep. Cincia da Computao

Escalonamento em Sistemas em Lote


Job mais curto primeiro
Shortest Job First (SJF) Exige conhecimento do tempo de execuo de um job Entre a fila de jobs aguardando escalonamento, escolhe aquele que possui o menor tempo de execuo Melhora o tempo mdio de retorno Desvantagem Jobs chegando entre a execuo de outros podem ter tempos curtos e caso escolhidos primeiro reduziriam o tempo mdio de retorno

Dep. Cincia da Computao

Escalonamento em Sistemas em Lote


Prximo de menor tempo restante
Shortest remaining time first (SRTF) Novamente, tempo de execuo de cada job deve ser conhecido Na chegada de novo job, seu tempo total comparado com o tempo restante dos jobs atualmente enfileirados Ser enfileirado antes daquele que possui tempo restante imediatamente superior a ele Podendo inclusive tomar a CPU logo na chegada Quase preempo
Dep. Cincia da Computao

Escalonamento em Sistemas em Lote

Dep. Cincia da Computao

Escalonamento em Sistemas Interativos


Escalonamento por alternncia circular
Round-robin Cada processo ganha um intervalo de tempo para uso contnuo da CPU (quantum) Se ao final do quantum, processo ainda est processando, h preempo e outro processo ser escolhido Se houve bloqueio ou o processo terminou antes do fim do quantum, outro processo ser escolhido Dimensionamento do quantum sensvel Overhead das trocas de contexto Tempo de resposta

Dep. Cincia da Computao

Escalonamento em Sistemas Interativos


Escalonamento por prioridades
Cada processo possui uma prioridade O processo pronto com maior prioridade ganha a CPU Processo de mais alta prioridade deixaria a CPU somente quando quisesse
Pode-se baixar a prioridade do processo executando, a cada tick de relgio Ou estabelecer um quantum mximo

Atribuio pode ser esttica ou dinmica Comumente usado em conjunto com round-robin
Dep. Cincia da Computao

Escalonamento em Sistemas Interativos


Prioridades + Round-robin
Definem-se classes de prioridade Normalmente promove justia apenas intra-classe

Dep. Cincia da Computao

Escalonamento em Sistemas Interativos


Prximo processo mais curto
Shortest process next Estimar tempo de execuo do processo com base em comportamento passado
Soma ponderada entre estimativa (T0) e ltimas execues T0; T0/2+T1/2; T0/4+T1/4+T2/2; T0/8+T1/8+T2/4+T3/2

Estimativa do tempo de execuo um tipo de Aging

Dep. Cincia da Computao

Escalonamento em Sistemas Interativos


Escalonamento Garantido
Fazer promessas reais aos usurios Exemplo: Havendo n usurios conectados garantir a frao 1/n de CPU Clculo fica baseado no tempo de uso da CPU por cada processo desde sua criao Processos com menor tempo de uso ganham CPU para se aproximar da frao garantida Pode levar a grandes variaes no tempo de resposta

Dep. Cincia da Computao

Escalonamento em Sistemas Interativos


Escalonamento por Loteria
Prover garantias interessante, mas com implementao mais complexa Pode-se obter algo prximo a garantias mas com implementao mais simples Processos ganham bilhetes de loteria. O prmio ganhar a CPU A deciso de escalonamento consiste simplesmente da escolha aleatria de um bilhete O quantum pode variar, conforme nmero de sorteios por segundo

Dep. Cincia da Computao

Escalonamento em Sistemas Interativos


Escalonamento por Loteria
Como oferecer diferenciao de processos? Dar mais bilhetes de loteria aos processos mais importantes, aumentando suas chances de ganhar Processos recm-criados participam da loteria prontamente Processos cooperativos podem trocar bilhetes entre si Cliente/Servidor Bilhetes de loteria acabam representando fraes da CPU Se um processo possui um frao f dos bilhetes, possui praticamente uma frao f da CPU Muito til como forma de oferecer garantias diferentes a processos com demandas diferentes
Dep. Cincia da Computao

Escalonamento em Sistemas de Tempo Real


Sistemas com propsito especfico Resposta certa, porm tardia, to ruim quanto no ter resposta Tempo real crtico
Prazos absolutos a serem cumpridos

Tempo real no-crtico


Descumprimento ocasional de prazos tolervel

Normalmente, processos de tempo real tm comportamento bem conhecido


Curto processamento Escalonador deve trabalhar para que todos os prazos sejam respeitados

Dep. Cincia da Computao

Escalonamento em Sistemas de Tempo Real


Sistema de tempo-real escalonvel
possvel descobrir se um sistema de tempo real realmente escalonvel com base na periodicidade dos eventos (tratados pelos processos)
m eventos peridicos evento i ocorre em perodos de Pi unidades de tempo e requer Ci unidades de tempo para execuo

Ento a carga poder ser tratada somente se

Dep. Cincia da Computao

Separando poltica e mecanismo


Processos podem querer especificar o comportamento do escalonamento de seus filhos Separando a poltica do mecanismo
O algoritmo de escalonamento passa a ser parametrizado Parmetros fornecidos pelos processos de usurio Chamada de sistema para configurar o comportamento Poltica estabelecida pelo usurio Mecanismo permanece no ncleo
Dep. Cincia da Computao

Escalonamento de Threads

Dep. Cincia da Computao

Você também pode gostar