Buscar

Métodos de Escalonamento em Sistemas de Tempo Real

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas de Tempo Real
Material Teórico
Responsável pelo Conteúdo:
Prof. Dr. Cléber Silva Ferreira da Luz
Revisão Textual:
Prof.ª Esp. Kelciane da Rocha Campos
Métodos de Escalonamento
• Introdução;
• Escalonamento Preemptivo e não Preemptivo;
• Características de Escalonamento;
• Escalonamento de Tarefas;
• Conclusões e Resumo da Unidade.
 · Apresentar os principais algoritmos de escalonamento no âmbito de 
sistemas de tempo real distribuído.
OBJETIVO DE APRENDIZADO
Métodos de Escalonamento
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem 
aproveitado e haja maior aplicabilidade na sua 
formação acadêmica e atuação profissional, siga 
algumas recomendações básicas: 
Assim:
Organize seus estudos de maneira que passem a fazer parte 
da sua rotina. Por exemplo, você poderá determinar um dia e 
horário fixos como seu “momento do estudo”;
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
alimentação saudável pode proporcionar melhor aproveitamento do estudo;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos 
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você 
também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão 
sua interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o 
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e 
de aprendizagem.
Organize seus estudos de maneira que passem a fazer parte 
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Determine um 
horário fixo 
para estudar.
Aproveite as 
indicações 
de Material 
Complementar.
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
Não se esqueça 
de se alimentar 
e de se manter 
hidratado.
Aproveite as 
Conserve seu 
material e local de 
estudos sempre 
organizados.
Procure manter 
contato com seus 
colegas e tutores 
para trocar ideias! 
Isso amplia a 
aprendizagem.
Seja original! 
Nunca plagie 
trabalhos.
UNIDADE Métodos de Escalonamento
Introdução
Habitualmente, um sistema de tempo real recebe diversos eventos do ambiente 
ao mesmo tempo. A qual sistema deve responder? Em muitos casos, o sistema 
possui múltiplos recursos de processamento e múltiplos eventos para responder. 
Neste caso, devem-se escalonar os múltiplos eventos para serem processados pelos 
múltiplos recursos de processamento. Os múltiplos eventos são processados de 
forma paralela ou distribuída, isto é, simultaneamente.
O primeiro passo é entender o que é um escalonamento. Problemas que envol-
vem escalonamento ocorrem em diversas áreas. Por exemplo, problema de esca-
lonamento ocorrem em hospitais, universidades, indústrias, entre outros. Em uni-
versidades, o problema de escalonamento aparece na atribuição de aulas para os 
professores e na alocação de sala para as disciplinas. Na alocação de sala, é preciso 
alocar as salas para as disciplinas, tomando-se cuidado para não alocar uma mesma 
sala para duas disciplinas e seguindo-se algumas restrições preestabelecidas, como 
o horário das disciplinas. Em hospitais, o problema de escalonamento ocorre na 
alocação de salas para realizar cirurgias, alocação de médicos e enfermeiros para 
atender os pacientes, entre outras formas.
De um modo geral, o problema de escalonamento é definido como se segue: 
dados y recursos e z tarefas, é preciso alocar os y recursos para as z tarefas, res-
peitando-se uma série de restrições preestabelecidas, a fim de alcançar um objetivo 
final (TANENBAUM, 2003).
O escalonamento visa otimizar a performance do sistema de acordo com um critério 
estabelecido no escalonamento. A otimização é realizada através da divisão da capacida-
de de processamento entre os diversos recursos de processamento presentes no sistema 
de tempo real. Dividindo-se o processamento, o tempo de resposta é diminuído.
Escalonamento aparece em diversas áreas e de formas variadas. Para um me-
lhor entendimento sobre o conceito de escalonamento, é necessário o entendimen-
to dos seguintes termos:
• Recursos: podem ser entendidos como computadores, dispositivos, apare-
lhos, máquinas, entre outros.
• Tarefa: pode ser vista como um conjunto de operações que juntas completam 
uma rotina.
• Escalonador: é o componente responsável por gerenciar os recursos e esca-
lonar as tarefas para os mesmos. O escalonador é responsável por fornecer a 
solução de escalonamento das tarefas para os recursos disponíveis.
• Escalonamento: o termo “escalonamento” caracteriza o processo de aloca-
ção de recursos às tarefas como um todo. Uma solução de escalonamento 
mostra como o problema de alocação de recursos às tarefas pode ser resol-
vido. As tarefas podem ser escalonadas dinamicamente, em tempo real, ou 
estaticamente, antes de começar a execução da aplicação.
8
9
Em sistemas de tempo real, os métodos de escalonamento devem garantir a priori 
que o sistema cumpra as suas metas temporais, isto é, que o sistema realize todas 
as tarefas no intervalo de tempo definido, ou seja, não pode haver perda de prazo.
Habitualmente, o mecanismo de escalonamento do sistema de tempo real co-
nhece o tempo de execução de todas as tarefas que devem ser realizadas, tanto 
para eventos periódicos, como para eventos esporádicos (ALMEIDA, 2013).
Escalonamento Preemptivo 
e não Preemptivo
Existem duas classificações de escalonamento, que são:
• preemptivo; e
• não preemptivo.
Quando uma tarefa é escalonada para ser executada em um recurso de pro-
cessamento e esta tarefa tem o direito de terminar todas as ações que ela precisa 
fazer, dizemos que o escalonamento é não preemptivo. Quando uma tarefa pode 
ser interrompida no momento de sua execução, isto é, ela não termina todas as 
suas ações, dizemos que o escalonamento é preemptivo. Em outras palavras, se um 
recurso pegar uma tarefa ele terá que a concluir (não preemptivo), ou se o mesmo 
começar a executar uma tarefa e logo depois houver uma substituição de tarefas, 
estamos falando de um escalonamento preemptivo.
Características de Escalonamento
Alguns termos são utilizados para caracterizar o escalonamento. Alguns desses 
termos são:
• Turnaround Time: é o tempo que decorre entre o instante em que a tarefa é 
submetida para o recurso e o instante em que ela é concluída.
• Tempo de Resposta: é o tempo que decorre entre a submissão de um pedido 
(evento) e o início da resposta.
• Deadline: é o tempo no qual um determinado resultado de computação deve 
estar disponível, isto é, o prazo de tempo em que um evento deve ocorrer. 
Sempre que forem especificados deadlines, o critério de escalonamento deve 
garantir que os deadlines são cumpridos, caso não seja possível deve garantir 
que o mínimo número de deadlines seja ultrapassado.
• Prioridade: cada tarefa é associada a uma determinada prioridade que lhe 
garante um tratamento diferenciado por parte do escalonador em relação às 
outras tarefas, isto é, aquela tarefa que possui uma prioridade maior será esca-
lonada para ser executada antes que as outras.
9
UNIDADE Métodos de Escalonamento
Escalonamento de Tarefas
Um escalonamento de tarefas pode ser classificado em dois grupos: 
• Escalonamento Estático; e
• Escalonamento Dinâmico.
Essa classificação baseia-se nas regras de escalonamento quanto à consideração 
do estado atual da aplicação. Por exemplo, no escalonamento estático não são 
consideradas as alterações do estado atual da aplicação. Dessa forma, as tarefas 
são alocadas antes da execução da aplicação e a execução é feita em função do 
escalonamento estabelecido.
O escalonamento dinâmico detecta alterações no estado atual da aplicação e ge-
rencia os recursos com basenas informações atuais da aplicação. As tarefas são alo-
cadas em tempo de execução, considerando-se as informações e condições da apli-
cação. Um método de escalonamento implementa uma política de escalonamento.
Na literatura, as políticas de escalonamento dinâmico mais comuns são:
• FIFO;
• HPF;
• SJF;
• HRN;
• RR.
Na política de escalonamento FIFO (First In First Out), as tarefas são colocadas 
em uma fila ordenada por ordem de chegada. Em FIFO, o escalonamento é feito 
obedecendo-se ao instante de chegada de cada tarefa, ou seja, a tarefa que ocupa 
o primeiro lugar na fila será a próxima a ser escalonada para o recurso. A tarefa 
escalonada recebe o uso do recurso até a sua finalização. Quando uma tarefa que 
estava em execução é finalizada, a próxima tarefa que se encontra na fila é, então, 
escalonada para utilizar o recurso. Este algoritmo possui a característica de ser fácil 
e simples para implementar.
A política de escalonamento HPF (Highest Priority First), também chamado de 
escalonamento por prioridades, é uma variante do escalonamento FIFO. Em HPF, 
as tarefas em espera pelo recurso são organizadas em uma fila obedecendo à sua 
prioridade. Na fila, as posições são ocupadas por tarefas em ordem decrescente 
de prioridade. Com isso, a função de seleção para o escalonamento favorece as 
tarefas consideradas mais importantes.
A política de escalonamento SJF (Shortest Job First) é um caso especial do 
HPF, em que o escalonamento é realizado em função do tempo de execução das 
tarefas. As tarefas em espera pelos recursos são organizadas em uma fila obede-
cendo a seu tempo de execução. As tarefas com menores tempos de execução 
são colocadas na frente da fila. Dessa forma, as tarefas com menores tempos de 
10
11
execução são escalonadas primeiro. Este algoritmo é considerado um algoritmo 
ótimo porque realiza uma pequena otimização no tempo de espera, tempo que 
as tarefas devem esperar para ser selecionadas. Este algoritmo também é usado 
essencialmente para escalonamento a longo prazo.
A política de escalonamento HRN (Highest Response-Ratio Next) é uma ver-
são mais eficiente do escalonamento SJF. Em HRN, é realizado um balanceamento 
entre a duração da tarefa e seu tempo de espera, de forma a compensar a espera 
excessiva de tarefas de maior duração. Neste algoritmo, cada tarefa é associada 
com uma prioridade. Os recursos de processamento são alocados para as tarefas 
com as maiores prioridades. Este escalonamento pode ser preemptivo ou não pre-
emptivo. A prioridade é representada por um número inteiro positivo.
A política de escalonamento RR (Round Robin) é uma política de escalonamen-
to simples e elegante. Este algoritmo atribui uma fração de tempo para cada tarefa 
em partes iguais.
Métodos de Escalonamentos de Tarefas
Existem diversos métodos de escalonamento de tarefas na literatura. Nesta se-
ção, são apresentados os métodos de escalonamento estático e os dinâmicos Self-
-Scheduling e Guided.
Algoritmos de Escalonamento Estático 
O algoritmo de escalonamento estático consiste em atribuir as tarefas aos recur-
sos em tempo de compilação. Desta forma, antes de o processamento começar 
cada recurso de processamento já sabe quais tarefas terá que processar.
Para um melhor entendimento, considere as 12 tarefas apresentadas na Figura 
1. Cada tarefa possui um tempo de processamento em minuto - por exemplo, a 
tarefa 1 leva 7 minutos para ser processada. Já a tarefa 8 leva 17 minutos para ser 
processada, enquanto a tarefa 12 leva 17 minutos para ser processada.
Tarefas
5 6 7 8 9 10 1111 432 12
4 9 6 17 33 11 17 2252 17
Figura 1 – Tarefas
Essas tarefas devem ser escalonadas pelos 4 recursos de processamento dispo-
níveis no sistema de tempo real. A Figura 2 ilustra os 4 recursos.
Recurso 1 Recurso 3 Recurso 4Recurso 2
Figura 2 – Recursos de processamento
11
UNIDADE Métodos de Escalonamento
Agora, realizando-se o escalonamento estático utilizando a política FIFO, o es-
calonamento fica conforme ilustrado na Figura 3.
Recurso 1
4
33
7
Recurso 3
6
1
5
Recurso 2
9
11
2
Recurso 4
17
22
17
Figura 3 – Escalonamento estático
Neste escalonamento, o Recurso 1 ficou responsável por processar as tarefas 
7, 4 e 33. O Recurso 2 as tarefas 2, 9 e 11. Já o Recurso 3 as tarefas 5, 6 e 1. 
E por fim, o Recurso 4 ficou com as tarefas 22, 17 e 17. Somando-se as cargas 
de trabalho, é possível perceber que não houve uma boa distribuição de carga de 
trabalho neste escalonamento. A próxima seção apresenta detalhes sobre o desba-
lanceamento de carga causado neste cenário.
Desbalanceamento de Carga
Para este escalonamento, houve uma má distribuição de carga. Observe a Figura 
4, esta figura mostra o total de carga atribuída para cada recurso de processamen-
to. É possível observar que a carga de trabalho entre tais recursos ficou extrema-
mente diferente, provocando uma má distribuição de carga de trabalho.
Recurso 1
4
33
7
Recurso 3
6
1
5
Recurso 2
9
11
2
Recurso 4
17
22
17
Total 44 22 12 56
Figura 4 – Total de carga de trabalho
12
13
Habitualmente, no escalonamento procura-se realizar um bom balanceamento 
de carga, isto é, cada recurso de processamento deve possuir uma carga de tra-
balho justa e igualitária. O Balanceamento de Carga permite balancear as cargas 
de trabalhos entre os processadores, de forma que todos tenham uma carga de 
trabalho justa e igual. Um mau balanceamento de carga entre os recursos de pro-
cessamento pode afetar o desempenho da aplicação.
Neste cenário, é possível perceber que o Recurso 3 irá terminar o processamen-
to primeiro e que o último recurso a terminar será o Recurso 4. Dessa forma, o 
Recurso 3 ficará 34 (56-22) minutos ocioso, isto é, 34 minutos parado, sem nada 
para processar. Ociosidade no processamento não é legal. A ociosidade pode de-
gradar o desempenho da aplicação.
Os algoritmos de escalonamento dinâmico realizam uma melhor distribuição de car-
ga e quase sempre deixando uma ociosidade muito pequena no processamento. A pró-
xima seção apresenta mais detalhes sobre os algoritmos de escalonamento dinâmico.
Algoritmos de Escalonamento Dinâmico
No algoritmo de escalonamento dinâmico, as tarefas são atribuídas para os re-
cursos em tempo de processamento. Assim, o recurso somente sabe quais as tare-
fas que terá que processar na hora da execução.
Habitualmente, os algoritmos de escalonamento dinâmico possuem a caracte-
rística de realizarem uma boa distribuição de carga de trabalho entre os diversos 
recursos de processamento presentes no sistema computacional. Dessa forma, 
os algoritmos dinâmicos permitem não haver ociosidade no processamento, ou a 
ociosidade é quase nula.
Existem diversos algoritmos de escalonamento dinâmico, entre os quais estão:
• Self-Scheduling; e
• Guided.
Os algoritmos Self-Scheduling e Guided são indicados para escalonamentos em 
que o tempo da chegada das tarefas é desconhecido. As tarefas chegam dinamica-
mente. Estes algoritmos implicitamente realizam um balanceamento de carga no 
processamento. As próximas seções apresentam detalhes sobre esses dois algorit-
mos de escalonamento dinâmicos.
Algoritmo Self-Scheduling
O algoritmo de escalonamento Self-Scheduling é usado principalmente para 
lidar com o balanceamento de cargas. Durante o Self-Scheduling, o processador 
ocioso busca a próxima tarefa ou um bloco de tarefas de tamanho definido pelo 
usuário em um pool de tarefas compartilhadas.
Um processo (processo mestre) fica responsável por enviar tarefas para os ou-
tros processos (processos escravos). Quando um escravo termina de processar a 
sua tarefa ou o seu bloco, ele envia uma mensagem para o nó mestre avisando que 
13
UNIDADE Métodos de Escalonamento
terminou a execução e logo em seguida, o nó mestre envia outra tarefa ou bloco 
de tarefa para este escravo, conforme ilustrado na Figura 5.
Recurso 1
Recurso 3Recurso 2 Recurso 4
Send()
Receive()
Send()
Receive()
Send()
Receive()
Send()
Receive()
Figura 5 – Envio e recebimentode dados no algoritmo Self-Scheduling
No Self-Scheduling, as atribuições de cargas são realizadas em passos. Primei-
ro o recurso mestre envia as tarefas para os recursos. Após os recursos terminarem 
a sua tarefa, os mesmos solicitam mais tarefas para o recurso mestre. A Figura 6 
ilustra uma primeira atribuição realizada pelo algoritmo de escalonamento dinâmi-
co Self-Scheduling, considerando as tarefas apresentadas na Figura 1 e os recur-
sos apresentados na Figura 2.
Recurso 1
7
Recurso 3
5
Recurso 2
2
Recurso 4
22
Figura 6 – Primeira atribuição de carga de trabalho pelo algoritmo Self-Scheduling
Nesta atribuição, o primeiro recurso a terminar a sua tarefa é o recurso 2. Após 
terminar a sua tarefa, o recurso 2 solicita mais trabalho para o recurso mestre, que 
o envia logo em seguida. Dessa forma, o escalonamento fica igual ao demonstrado 
na Figura 7.
Recurso 1
7
Recurso 3
5
Recurso 2
4
2
Recurso 4
22
Figura 7 – Segunda atribuição de carga de trabalho realizada pelo algoritmo Self-Scheduling
14
15
O próximo recurso de processamento a terminar a sua tarefa é o recurso 3, que, 
por sua vez, solicita mais tarefa ao recurso mestre, que a envia logo em seguida. 
Agora o escalonamento fica igual ao apresentado na Figura 8.
Recurso 1
7
Recurso 3
5
Recurso 2
4
2
Recurso 4
22
9
Figura 8 – Terceira atribuição de carga de trabalho realizada pelo algoritmo Self-Scheduling
Na próxima atribuição, o recurso que terminar o processamento irá solicitar 
mais tarefas para o recurso mestre, que, por sua vez, enviará mais tarefas ao re-
curso solicitador.
Recurso 1
7
Recurso 3
5
Recurso 2
4
2
Recurso 4
22
9
Figura 9 – Atribuição de carga de trabalho realizada pelo algoritmo Self-Scheduling
E assim, o escalonamento segue até que todas as tarefas sejam processadas. A 
Figura 10 ilustra todo o processamento das tarefas pelos recursos de processamento.
Recurso 1
7
Recurso 3
5
Recurso 2
4
2
Recurso 4
22
9
Figura 10 – Atribuição de carga de trabalho realizada pelo algoritmo Self-Scheduling
15
UNIDADE Métodos de Escalonamento
Algoritmo Guided
No algoritmo de escalonamento Guided, a atribuição de tarefas é realizada em 
blocos dinamicamente. O tamanho de bloco é calculado dinamicamente e varia ao 
longo das atribuições durante a execução (TANENBAUM, 2003).
A ideia principal deste algoritmo é iniciar o processamento das iterações do laço 
atribuindo quantias de iterações cujo tamanho começa com n/p e continua a dimi-
nuir até que todas as tarefas estejam atribuídas. Em n/p, n é a quantidade de tarefas 
e p é a quantidade de recurso de processamento.
Assim como o algoritmo Self-Scheduling, o algoritmo Guided implementa um 
balanceamento de carga implicitamente. Este algoritmo também é muito indicado 
em situações em que o tempo da chegada das tarefas não é conhecido.
Conclusões e Resumo da Unidade
Frequentemente, um sistema de tempo real recebe diversos eventos do seu am-
biente, muitas vezes tais eventos devem ser respondidos simultaneamente, em pa-
ralelo. Dessa forma, um sistema de tempo real deve possuir bons mecanismos de 
escalonamentos para escalonar as suas diversas tarefas entre os diversos recursos 
presentes no sistema computacional.
Problemas de escalonamento aparecem em diversas áreas, tais como: industrial, 
comercial, bancária, escolar, entre outras. De um modo geral, o problema de esca-
lonamento é definido como se segue: dados y recursos e z tarefas, é preciso alocar 
os y recursos para as z tarefas, respeitando-se uma série de restrições preestabele-
cidas, a fim de alcançar um objetivo final (AROCA, 2008).
Em um sistema de tempo real, o mecanismo de escalonamento deve:
• escalonar as tarefas para serem executadas pelos recursos;
• manter os recursos de processamento ocupados;
• balancear a utilização dos recursos de processamentos;
• tratar todos os processos de forma igual;
• garantir prioridades quando necessário;
• manter um equilíbrio entre resposta e utilização.
O escalonamento também visa otimizar a performance do sistema de acordo 
com um critério estabelecido no escalonamento. A otimização é realizada através 
da divisão da capacidade de processamento entre os diversos recursos de proces-
samento presentes no sistema de tempo real. Dividindo-se o processamento, o 
tempo de resposta é diminuído.
O mecanismo de escalonamento deve ser composto por:
• Recursos: que podem ser entendidos como computadores, dispositivos, apa-
relhos, máquinas, entre outros.
16
17
• Tarefa: que pode ser vista como um conjunto de operações que juntas com-
pletam uma rotina.
• Escalonador: que é o componente responsável por gerenciar os recursos e 
escalonar as tarefas para os mesmos.
• Escalonamento: o termo “escalonamento” caracteriza o processo de aloca-
ção de recursos às tarefas como um todo.
Um escalonamento pode ser classificado como Preemptivo e não Preemptivo. 
Quando uma tarefa é escalonada para ser executada em um recurso de processa-
mento e esta tarefa tem o direito de terminar todas as ações que ela precisa fazer, 
dizemos que o escalonamento é não preemptivo. Quando uma tarefa pode ser 
interrompida no momento de sua execução, isto é, ela não termina todas as suas 
ações, dizemos que o escalonamento é preemptivo.
Um escalonamento de tarefas pode ser classificado em dois grupos: Escalona-
mento Estático e Escalonamento Dinâmico (TANENBAUM, 2003). No escalo-
namento estático, não são consideradas as alterações do estado atual da aplicação. 
Dessa forma, as tarefas são alocadas antes da execução da aplicação e a execução 
é feita em função do escalonamento estabelecido. O escalonamento dinâmico de-
tecta alterações no estado atual da aplicação e gerencia os recursos com base nas 
informações atuais da aplicação. As tarefas são alocadas em tempo de execução, 
considerando-se as informações e condições da aplicação. Um método de escalo-
namento implementa uma política de escalonamento.
Na literatura, as políticas de escalonamento dinâmico mais comuns são:
• FIFO (First In First Out): as tarefas são colocadas em uma fila ordenada por 
ordem de chegada. Em FIFO, o escalonamento é feito obedecendo-se ao ins-
tante de chegada de cada tarefa, ou seja, a tarefa que ocupa o primeiro lugar 
na fila será a próxima a ser escalonada para o recurso.
• HPF (Highest Priority First), também chamado de escalonamento por priori-
dades, é uma variante do escalonamento FIFO. Em HPF, as tarefas em espera 
pelo recurso são organizadas em uma fila obedecendo à sua prioridade.
• SJF (Shortest Job First) é um caso especial do HPF, em que o escalonamen-
to é realizado em função do tempo de execução das tarefas. As tarefas em 
espera pelos recursos são organizadas em uma fila obedecendo a seu tempo 
de execução. As tarefas com menores tempos de execução são colocadas na 
frente da fila.
• HRN (Highest Response-Ratio Next) é uma versão mais eficiente do esca-
lonamento SJF. Em HRN, é realizado um balanceamento entre a duração 
da tarefa e seu tempo de espera, de forma a compensar a espera excessiva 
de tarefas de maior duração. Neste algoritmo, cada tarefa é associada a 
uma prioridade.
• RR (Round Robin) é um algoritmo de escalonamento simples e elegante. Este 
algoritmo atribui uma fração de tempo para cada tarefa em partes iguais.
17
UNIDADE Métodos de Escalonamento
No algoritmo de escalonamento dinâmico, as tarefas são atribuídas para os re-
cursos em tempo de processamento. Assim, o recurso somente sabe quais as tare-
fas que terá que processar na hora da execução.
Existem diversos algoritmos de escalonamento dinâmicos, entre os quais estão:
• Self-Scheduling; e
• Guided.
O algoritmo de escalonamento Self-Scheduling é usado principalmente para 
lidar com o balanceamento de cargas. Durante o Self-Scheduling, o processador 
ocioso busca a próxima tarefa ou um bloco de tarefas de tamanho definido pelo 
usuário em um pool de tarefas compartilhadas.
No algoritmo de escalonamento Guided, a atribuição de tarefas é realizada em 
blocosdinamicamente. O tamanho de bloco é calculado dinamicamente e varia ao 
longo das atribuições durante a execução.
Muitas vezes, um sistema de tempo real deve responder a eventos simultanea-
mente, isto é, em paralelo. Dessa forma, o sistema de tempo real deve possuir um 
mecanismo de escalonamento, visando escalonar de forma correta as tarefas entre 
os diversos recursos de processamento. Nesta unidade, estudamos os principais 
métodos e algoritmos de escalonamento de tarefa.
18
19
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Vídeos
Sistema em Tempo Real - SO
https://youtu.be/gaO9o-ZfMiU
Sistema em Tempo Real
https://youtu.be/HTLZUCkdQbA
 Leitura
Sistemas de Tempo Real – Parte 1
https://goo.gl/K29zuC
Sistemas de Tempo Real
https://goo.gl/4bcgvB
19
UNIDADE Métodos de Escalonamento
Referências
ALMEIDA, M. B. de. Implementando sistemas operacionais de tempo real em 
microcontroladores. 2013. (ebook).
SHAW, A. C. Sistemas e software de tempo real. Porto Alegre: Bookman, 2003.
AROCA, R. V. Análise de sistemas operacionais de tempo real para aplica-
ções de robótica e automação. Dissertação de mestrado. Orientador: Prof. Dr. 
Glauco Augusto de Paula Caurin. Escola de Engenharia de São Carlos. Universi-
dade de São Paulo. São Carlos, 2008. Disponível em: <file:///C:/Users/campo/
Downloads/DissertacaoArocaMestrado2008.pdf>. Acesso em: 26 jul. 2018.
TANENBAUM, A. S. Sistemas operacionais modernos. 2ª edição. São Paulo: 
Pearson Prentice Hall, 2003.
MARTIN, T. Design of real time systems. Prentice-Hall, Inc. Upper Saddle River, 
NJ, USA, 1967.
CEDENO, W.; Laplante, P. A. An overview of real-time operating systems. Jour-
nal of the Association for Laboratoty Automation, 12:40-45.
20

Outros materiais