Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Faculdade Integrado de Campo Mourão – Av. Irmãos Pereira, 670 - Cep: 87300-010
Campo Mourão – Paraná – Brasil. E-mail: mvmeira@grupointegrado.br
RESUMO
ABSTRACT
criação
ativo
intervalo de desbloqueia
tempo expira, adormecido
tarefa interativa escalonado
sinal de
bloqueia
nova continuar
execução
época sinal de parada
intervalo de
tempo parado
expira
expirado
tarefa recebe sinal de sair
ou de matar
Estados ativados
parado
morto
Fila de execução
-20 P1 P5 P16 P1
P4
19
Para garantir que uma tarefa execute na lista ativa ou na lista inativa. O algoritmo que
prioridade que lhe foi designada inicialmente, determina isso foi derivado empiricamente
ou próximo dela, o escalonador de tarefas não para proporcionar bom desempenho, seus
permite que a diferença entre a prioridade fatores primários são as prioridades estáticas
efetiva de uma tarefa e sua prioridade estática e efetivas de uma tarefa.
seja maior do que cinco unidades. Nesse O resultado do algoritmo é apresentado na
sentido, o escalonador honra os níveis de Figura 3 (Linux kernel source code). O eixo y
prioridade designados a uma tarefa quando da figura indica valor da prioridade de uma
ela foi criada. tarefa. A região sombreada indica conjuntos
de valores de prioridades estáticas e ajustes
OPERAÇÕES DE ESCALONAMENTO de prioridade que fazem com que uma tarefa
seja reescalonada, significando que ela é
O escalonador elimina uma tarefa de um colocada no final de seu arranjo de prioridades
processador se ela for interrompida, sofrer correspondente na lista ativa. Em geral, se
preempção ou bloquear. Toda vez que uma uma tarefa for de alta prioridade ou se sua
tarefa é eliminada de um processador, o prioridade efetiva recebeu um bônus
escalonador calcula um novo período de significativo, será reescalonada, o que permite
tempo. Se a tarefa bloquear, ou se for incapaz que tarefas I/O bound e tarefas interativas
de executar por qualquer outra razão, ela será executem mais do que uma vez por época.
desativada, o que significa que será retirada Na região não sombreada, as tarefas que têm
da fila de execução até que fique pronta pra baixa prioridade ou receberam penalidades de
executar. Caso contrário, o escalonador prioridades são colocadas na lista expirada.
determinará se a tarefa deve ser colocada na
Prioridade estática
-20
-10
Ajuste de
0 prioridade
5 -5
10
utilização imprópria, acidental ou mal- mínimo uma vez, impedindo que ocorra o
intencionada de tarefas de tempo real, apenas starvation. O reescalonamento permite que
usuários com privilégios de root tarefas I/O bound e tarefas interativas
(administrador) podem criá-las. executem mais do que uma vez por época,
evitando uma espera de tempo. Para evitar a
CONSIDERAÇÕES FINAIS situação de ociosidade em
multiprocessadores, se o escalonador detectar
A política de escalonamento em Linux procura que um processador esteja ocioso, executará
satisfazer os objetivos conflitantes que surgem balanceamento de carga para migrar tarefas
em todos os sistemas operacionais, ou seja, de um processador para outro de modo que
oferece um tempo de resposta rápido, procura melhore a utilização de recursos. Se o sistema
executar o maior número de tarefas no menor tiver apenas um processador, as rotinas de
espaço de tempo e concilia processos de alta balanceamento são eliminadas do núcleo
prioridade com os de baixa prioridade. Por quando este é compilado. Em escalonamento
tratar processos e threads como tarefas, de tempo real, tarefas de tempo real sempre
internamente ambos são representados por executam com prioridades mais altas do que
uma única tarefa, assim, threads simplificam o tarefas normais. Porque o escalonador sempre
código do núcleo e reduzem carga seleciona uma tarefa da fila de maior
requisitando somente uma cópia das prioridade da lista ativa, tarefas normais não
estruturas de dados de gerenciamento de podem provocar a preempção de tarefas de
tarefas. Por usar o escalonamento por tempo real. Finalizando, a política de
preempção, o Linux garante uma boa parte de escalonamento de processos em Linux, reúne
tempo para cada processo, garantido assim todos os métodos de escalonamento, levando
uma distribuição de tempo uniforme. em consideração, o escalonamento por
Uma meta interessante do escalonador é múltiplas filas com realimentação, onde a
impedir adiamento, estabelecendo um período prioridade dos processos é reavaliada,
de tempo denominado época durante o qual beneficiando todos os processos.
cada tarefa da fila de execução executará no
Real, L.C.V., Damasio, F., Escalonamento D. McCracken, POSIX threads amd the
interativo no kernel Linux, Universidade do Linux kernel, proceedings of the Ottawa Linux
Vale do Rio dos Sinos Centro de Ciências Symposium, 2002
Exatas e Tecnológicas
S. Walton, Linux threads frequently asked Linux kernel source code, versão 2.6.0-
questions, 2002, disponível em: test2, disponível em: http://
www.linas.org/linux/threads-faq.html .linux.no/source/kernel/sched.c?v=2.6.0-test2
U. Drepper e I. Molnar, The native POSIX Linux kernel source code, versão 2.5.75,
threads library for Linux, 2003, disponível disponível em:
em: http://people.redhat.com/drepper/nptl- http://lxr.linux.no/source/kernel/sched.c?v=2.5.
design.pdf 75
I. Molnar, Announcenment to Linux mailling
list, 2003, disponível em:
http://lwn.net/2002/0110/a/scheduler.php3
Recebido: 10/08/2008
Aceito: 14/10/2008