Anda di halaman 1dari 7

SISTEMAS OPERACIONAIS

6 ESCALONAMENTO DE CPU
O escalonamento de CPU ponto chave da multiprogramao. Ela permite
que haja mais de um processo em execuo ao mesmo tempo. Em ambientes com
um nico processador, o escalonador realiza o revezamento de uso do processador
pelos processos, tornando-o mais eficiente. Muitas vezes, eles tm diferentes fluxos
de execuo, com uso de diferentes recursos e em diferentes pocas.

6.1 INTRODUO
O objetivo da multiprogramao aumentar o ndice de aproveitamento da
CPU. Ela tenta sempre deixar a CPU ocupada com algum processo. Ele aproveita
as operaes de I/O, onde a CPU no utilizada e poderia ficar ociosa para colocar
um outro processo em execuo. O escalonamento muito importante para o
Sistema Computacional, praticamente qualquer recurso pode ser escalonado.

6.1.1 CICLO DE SURTO DE CPU E I/O


Estas duas caractersticas se referem ao fato de que um processo tem
intervalos de uso de CPU e I/O. Toda vez que um processo nesta usando a CPU
dito que um surto de CPU e um surto de I/O quando ele est em uma operao
dessa natureza.
Tais caractersticas fazem haver duas categorias:
 Um processo que tem muitas operaes de I/O ter muitos surtos curtos de
CPU;
 Um programa que usa muito usa muito a CPU ter poucos surtos de I/O,
mas sero longos.

6.1.2 ESCALONADOR DE CPU


O escalonador um processo do Sistema Operacional que seleciona um dos
processos que est no estado PRONTO. Um dos pontos importantes que nem
sempre o primeiro da fila o primeiro a ser atendido.

6.1.3 ESCALONAMENTO PREEMPTIVO


As decises de escalonamento de CPU podem ocorrer de quatro maneiras:
1. Quando o processo passa do estado de execuo para o estado de espera
(bloqueado);
2. Quando um processo passa do estado de execuo para o estado pronto;
WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

3. Quando um processo passa do estado bloqueado para o estado pronto;


4. Quando um processo termina.
Nos casos 1 e 4 h obrigatoriamente a troca de processos na CPU. Um novo
processo que est no estado pronto deve ser selecionado para usar a CPU. Este tipo
de escalonamento conhecido como cooperativo ou no-preemptivo. Caso
contrrio, ele conhecido como preemptivo.
No escalonamento no-preemptivo o processo mantido na CPU at ele
liberar o processador indo para o estado bloqueado ou terminando. Este tipo de
escalonamento foi utilizado nas primeiras verses de Windows, at o 98 mais
precisamente. O MacOS8 tambm utilizou este tipo de escalonamento. Neste caso
foi utilizado por uma limitao de hardware, pois o escalonamento preemptivo
precisa de um timer.
O escalonamento preemptivo tem como uma de suas conseqncias o
aumento do custo de implementao do sistema, principalmente no
compartilhamento de recursos. Existem outras conseqncias da implementao
como, por exemplo:
 Coordenao de filas de requisies de acesso I/O;
 Coordenao de alteraes realizadas pelo kernel do Sistema Operacional;
 Coordenao de interrupes.

6.1.4 DISPATCHER
O dispatcher o processo que fornece o controle da CPU para o processo
selecionado pelo escalonador. Ele deve fazer a mudana de contexto, ou seja,
verificar e salvar quais os valores de variveis, registradores, posio no programa
e recursos do processo que est deixando a CPU e acionar o contexto exigido pelo
novo processo. O tempo de mudana de contexto chamado de latncia de
dispatcher.

6.2 CRITRIOS DE ESCALONAMENTO


Existem diversos algoritmos de escalonamento de processadores, com
diferentes propriedades. Cada um deles recomendado para situaes diferentes,
mas baseados em alguns critrios, os quais esto descritos a seguir:
 Utilizao de CPU: a CPU deve ficar o mximo de tempo ocupado. A
medida feita atravs de percentagem, variando de 0% a 100%. Nos
sistemas reais variam entre 40% e 90%;

WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

 Throughput: ela tambm conhecida como vazo. Ela se refere ao nmero de


processos executados por unidade de tempo. Para longos processos haver
uma baixa vazo, mas para curtos processos deve ser alta.
 Tempo de retorno: refere-se ao tempo total de execuo de um processo.
Este tempo deve incluir os tempos de espera, acesso memria e
dispositivos de I/O;
 Tempo de espera: a soma dos tempos que o processo precisou ficar
esperando na fila de processos prontos para ser selecionado para ser usado
pelo processador;
 Tempo de resposta: existem alguns processos que podem gerar respostas
ainda em execuo. O tempo de resposta est associado com o intervalo
entre o incio do processo e a gerao da primeira resposta.
O ideal ter o mximo de uso de CPU e throughput, e minimizar o tempo de
retorno, resposta e espera. Na maioria dos casos faz-se a mdia de todos os
critrios para otimizar o sistema. Porm, em alguns casos preciso trabalhar com
valores mximos e mnimos, fugindo de valores mdios.

6.3 ALGORITMOS DE ESCALONAMENTO


Existem basicamente quatro algoritmos de escalonamento.

6.3.1 FIRST-COME,FIRST-SERVED (PRIMEIRO A CHEGAR, PRIMEIRO SERVIDO)


Este algoritmo FCFS tambm conhecido como FIFO (First-In, First-Out
primeiro a entrar, primeiro a sair). Neste caso, o primeiro processo a pedir a CPU,
tem direito de us-la. Os processos que requisitam posteriormente a CPU so
alocados em uma fila e so atendidos conforme a ordem de requisio.
Este algoritmo o mais simples de ser implementado. Porm o tempo de
espera ou de resposta pode se tornar demasiadamente grande. Basta imaginarmos
uma grande quantidade de processos.
Vamos agora colocar o algoritmo FCFS em uma situao dinmica. Vamos
imaginar um longo processo A com poucas operaes de I/O, e muitos processos
que fazem muitas operaes de I/O. Imagine que A comece a executar, todos ou a
maioria dos dispositivos ficaro ociosos, pois os demais processos esto na fila
esperando ser selecionados. Se ele no-preemptivo, todos os processos que usam
I/O iro ter que esperar um longo perodo de tempo para iniciar a sua execuo
que ir utilizar muito pouco a CPU. Ele no recomendado para sistemas de
tempo compartilhado.

WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

6.3.2 JOB MAIS CURTO PRIMEIRO


Um outro algoritmo para escalonamento de CPU o do Job mais Curto
Primeiro. Ele tenta prever a durao do prximo surto de CPU do processo.
Quando a CPU est livre, o escalonador seleciona o processo que, possivelmente,
ter o surto de menor durao. Se dois processos tiverem o mesmo tamanho de
surto usado o algoritmo FCFS.
Sua filosofia est prxima de um algoritmo timo, porm existem alguns
fatores que o tornam uma soluo no muito interessante:
 Como prever com exatido o perodo do prximo surto de CPU?
 Mesmo se um processo tem um surto maior, ele pode ter uma prioridade
maior do que a de outros processos;
 Ele aumenta o tempo de retorno ou de resposta dos processos longos.
Para tentar prever o prximo surto de CPU de um determinado processo ele
faz uma anlise das ltimas chamadas do processo. Espera-se que a durao do
surto do processo seja semelhante aos anteriores.
A durao do prximo surto calculada como a mdia exponencial das
duraes medidas anteriores. A base de clculo feita da seguinte maneira:
Atn+1 = Atn + P*Atn-1
onde P o peso das medidas mais antigas.
A sua implementao pode ser preemptiva ou no-preemptiva. Caso ela seja
preemptiva, se o novo surto de CPU previsto de um processo for menor que o
atual em execuo, ento ele ser executado imediatamente, colocando o processo
que estava em execuo no estado PRONTO.

6.3.3 ESCALONAMENTO POR PRIORIDADE


Um outro algoritmo para escalonamento de processos por prioridade.
Cada processo associado a uma prioridade. Os valores maiores indicam os
processos de maior prioridade e os menores, os processos de menor prioridade.
Existem sistemas operacionais que adotam o padro inverso. Estes valores,
geralmente, so fixos.
De certa forma, o algoritmo do Job Mais Curto Primeiro um algoritmo de
prioridade. Entretanto, o seu parmetro de anlise o tamanho do surto de CPU
do processo.
A prioridade pode ser definida de forma interna ou externamente. Para
definir internamente so necessrios parmetros para anlise como, por exemplo:

WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

limite de tempo, requisitos de memria, quantidade de arquivos abertos pelo


processo e o surto mdio de CPU do processo.
Alm disso, ele pode ser preemptivo ou no-preemptivo. O peso das
prioridades pode ser crescente ou decrescente. Esta caracterstica varia com a
implementao do sistema operacional.

6.3.4 ROUD ROBIN


Este algoritmo foi o primeiro a propor uma implementao que simulasse a
multitarefa em tempo real. Ele prope que os processos revezem o uso da CPU
atravs de uma unidade de tempo denominada quantum. Um quantum pode ter
durao de 10 a 100 milisegundos, novamente depende da implementao do
sistema operacional.
Os processos prontos ficam organizados em uma fila circular. O escalonador
fica percorrendo esta fila e revezando a execuo dos processos at todos eles
acabarem. Esta fila do tipo FIFO. Neste algoritmo nenhum processo recebe mais
de um quantum consecutivo. Dessa maneira, o tempo para o prximo do quantum
de um processo ser executado n*q, onde n o nmero de processos que h na
fila e q o tamanho do quantum.
O tempo de retorno e de resposta aumenta de acordo com o nmero de
processos na fila. Ele tem uma complexidade maior de implementao, alm do
fato de que o custo computacional tambm aumenta, pois h a mudana constante
de contexto de processos. Ou seja, no critrio de uso da CPU recomendado que
seja considerado o tempo gasto para trocar de processo.

6.3.5 ESCALONAMENTO POR MLTIPLAS FILAS


Muitas vezes interessante ter mais de uma fila, onde cada uma delas aloca
processos de caractersticas ou prioridades semelhantes. Os processo so
permanentemente atribudos a uma delas. Cada fila tem seu prprio algoritmo de
escalonamento, independente dos demais.
Alm desses escalonadores, h um escalonador das filas. Cada fila tem
prioridade absoluta sobre as filas de menor prioridade, ou pode-se usar o RoundRobin.
Pode ser interessante que processos possam transitar entre as diversas filas.
Segundo, suas caractersticas ele realocado em uma fila de maior ou menor
prioridade. A construo de um escalonador para mltiplas filas considera:
 O nmero de filas;
 O algoritmo para escalonamento de cada fila;
WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

 Mtodo para mudar um processo de fila.

6.4 AVALIAO DE ALGORITMOS


Foram apresentados vrios algoritmos para escalonamento de processos.
Primeiramente, possvel fazer combinaes desses algoritmos e obter modelos
hbridos que melhor atendem s necessidades de um sistema operacional.
Segundo, quanto mais refinado o algoritmo escolhido, maior ser o seu custo
computacional e financeiro.
Porm, como selecionar ou especificar um algoritmo de escalonamento? O
primeiro passo especificar os critrios do escalonador e as metas a serem
atingidas. Em seguida, escolher um escalonador para ser validado.

6.4.1 MODELAGEM DETERMINSTICA


A primeira forma de avaliar um algoritmo a modelagem determinstica,
onde toma-se um volume de dados que alimentar o algoritmo. analisado o
comportamento do algoritmo e dos processos. Ela simples e rpida, porm ela
depende de uma srie de dados exatos. Conseqentemente, ele s exato para
aquela entrada de dados. Em situaes diferentes, o algoritmo no ter o mesmo
desempenho.
A aplicao desse mtodo est em fornecer algoritmos candidatos a adoo.
Com conjunto de dados ele pode informar tendncias que podem ser analisadas
independentemente. Se ela for a nica ferramenta para a modelagem do algoritmo
de escalonamento, ento deve-se ter total conhecimento das situaes em que o
sistema operacional ser empregado.

6.4.2 MODELOS DE FILAS


Como os processos so muitos e variam bastante todos os dias ou perodos
de horas, a anlise determinstica apenas uma ferramenta para fornecer
algoritmos candidatos a escalonadores.
Os principais fatores deterministicos que influenciam no desempenho so os
surtos de CPU e de I/O, os quais podem ser modelados atravs de filas. So
utilizadas distribuies de probabilidade que resultam em frmulas matemticas
para determinar a probabilidade de ocorrncia de eventos. Geralmente, a
distribuio utilizada a exponencial, a qual depende somente de sua mdia.
Os modelos de filas possuem servidores, filas e taxa de chegada de
entidades. A CPU o servidor e a taxa de chegada a taxa de criao de processos.
Esta taxa tambm obedece a uma distribuio de probabilidade. importante
saber que as distribuies so imprecisas e apenas se aproximam da realidade.
WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

6.4.3 SIMULAES
Uma vez feita a modelagem determinstica e teoria de filas, inicia-se o
processo de simulaes. So construdos em linguagens de programao, onde
estruturas de dados representam os componentes do sistema computacional.
So implementadas as filas com as distribuies de probabilidade ou tentase simular um nvel de aleatoriedade. Fazer simulaes um processo caro, que
requer tempo e especialistas em modelagem de filas.

6.4.4 IMPLEMENTAO
A nica maneira de obter 100% de confiabilidade a implementao real do
escalonador. Ele permite detectar as limitaes e ajustar os parmetros para
conseguir uma melhor adequao.
Porm ainda h uma srie de consideraes:
 Possui um alto custo;
 O ambiente mutvel, ento os ajustes dificilmente se adequam sempre.

WILIAM HIROSHI HISATUGU

Anda mungkin juga menyukai