Buscar

ESCALONAMENTO DE PROCESSOS

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 9 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 9 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 9 páginas

Prévia do material em texto

ALGORITMOS DE ESCALONAMENTO DE PROCESSOS 
 
Emmanuel Bitello1 
Maico Douglas Goulart2 
Rodrigo Lima3 
 
RESUMO 
 
O objetivo deste trabalho é verificar como os escalonamentos de processos 
funcionam e estabelecer uma demonstração de características. Com isso verificar por 
meio desses fatores o algoritmo que se comporta melhor levando em consideração 
tudo que for citado. 
 
 
 
 
 
 
 
 
 
 
 
Palavras-chave: Processos. Sistema. CPU. Escalonamento. Prioridades. 
 
1 Graduando de Análise e Desenvolvimento de Sistemas pela Faculdade de Desenvolvimento do Rio Grande do 
Sul (FADERGS). Endereço Eletrônico: emmanuelbitello@gmail.com; 
2 Graduando de Redes de Computadores pela Faculdade de Desenvolvimento do Rio Grande do Sul (FADERGS). 
Endereço Eletrônico: goulart.maico@gmail.com; 
3 Graduando de Análise e Desenvolvimento de Sistemas pela Faculdade de Desenvolvimento do Rio Grande do 
Sul (FADERGS). Endereço Eletrônico: rodrigo.lima_web@hotmail.com; 
mailto:goulart.maico@gmail.com
mailto:goulart.maico@gmail.com
 
1. INTRODUÇÃO 
 
Quando um ou mais processos estão prontos para serem executados, o 
sistema operacional em si deve decidir qual processo será o eleito para ser executado 
primeiro. Os processos ao serem executados concorrem a CPU. O escalonador 
(scheduler) é a parte de um sistema operacional encarregado de decidir dentre os 
processos prontos qual deles será colocado em execução. Para isso, existem 
situações que devem ocorrer para os processos serem escalonados: 
 
● Quando um processo é criado; 
● Quando um processo termina; 
● Quando um processo faz uma operação de I/O; 
● Interrupção de relógio (sistemas preemptivos). 
 
Critérios do escalonamento: 
● Utilização da CPU 
○ Em geral, é desejável que o processador permaneça a maior parte do 
tempo ocupado. 
● Throughput 
○ Número de processos executados em um determinado intervalo de 
tempo. 
○ Em geral, a maximização do throughput é desejada. 
● Tempo de turnaround 
○ Tempo que um processo leva desde sua admissão no sistema até seu 
término. 
○ Considera tempo de espera para alocação de memória, espera na fila 
de processos prontos, processamento e operações de entrada e saída. 
○ Em geral, a minimização do tempo de turnaround é desejada. 
 
 
● Tempo de resposta 
○ Tempo decorrido do momento da submissão de um pedido ao sistema 
até a primeira resposta produzida. 
○ Em geral, a minimização do tempo de resposta é desejada. 
Os escalonadores são divididos em 3 tipos: 
● Swapper: Seleciona os processos que irão da memória secundária para a área 
comum (processo que ainda não está em estado de pronto) da memória 
principal. Ele é intimamente ligado à gerência de memória. 
 
● Scheduler: Transfere o processo da área comum para a fila de pronto, onde 
irá efetivamente disputar recursos de processamento. 
 
● Dispatcher: Mais comum de escalonador é aquele que transfere os processos 
da fila de pronto para a CPU. Pode ser acionado por interrupções do relógio, 
por chamadas de sistema ou por interrupções de entrada e saída. 
 
Existem alguns tipos de escalonamento, como serão apresentados a seguir. 
 
2. ESCALONAMENTO FIRST-IN-FIRST-OUT (FIFO) 
 
O escalonamento FIFO (First In First Out - “primeiro que entra primeiro que sai”) 
funciona da seguinte maneira: O processo que chegar primeiro, é o primeiro a ser 
acionado para execução. Para que isso ocorra é necessário um fila de processos 
prontos, esperando pelo uso do processador. Quando um processo é acionado ele 
utiliza a CPU sem ser interrompido. 
Essa forma impossibilita prever quando o processo entrará em execução. 
Também há a possibilidade de processos CPU-bound de menor importância no 
sistema prejudicarem processos de I/O-Bound mais prioritários. 
A implementação do FIFO é simples e fácil. Basta manter uma fila de todas as 
páginas na memória. Elas são adicionadas ao final da fila quando lidas para a 
memória. A página que sofre *swap para o disco é sempre escolhida da frente da fila. 
 
 
Figura 1. Escalonamento FIFO Simples - Fonte: IFPR. 
 
3. ESCALONAMENTO SHORTEST-JOB-FIRST (SJF) 
 
O escalonamento SJF é um algoritmo por prioridade que é definida em função 
do uso da CPU. Ele privilegia processos de tamanho menor no uso da CPU. Quando 
a informação sobre o tempo de execução (CPU burst) não se encontra disponível, o 
ciclo deve ser estimado ou usa-se o anterior. Quando os usos de CPU são iguais usa-
se o algoritmo FIFO para desempate da situação. 
Existem dois tipos: O preemptivo, quando um processo entrar para a fila dos 
prontos. Para executar verifica-se se o seu burst é menor que o restante do processo 
atualmente em execução, e, o não preemptivo quando deixa o processo em execução 
terminar o seu CPU burst (uso da CPU). 
Sua utilização fornece o menor tempo médio de espera possível entre os 
processos ativos. Processos I/O bound são favorecidos. 
Nesse algoritmo existe a dificuldade de determinar o tempo do próximo ciclo de 
CPU de cada processo. O uso de prioridade (preempção) pode deixar que alguns 
processos de baixa prioridade fiquem esperando indefinidamente pela CPU. 
 
 
 
Figura 2. Escalonamento SJF - Fonte: Passei Direto. 
 
4. ESCALONAMENTO PREEMPTIVO 
 
O escalonamento preemptivo atribui um período de tempo ao processo. Ao final 
do período fixado, se o processo ainda estiver em execução, será suspenso e outro 
processo será escolhido para ser executado. O período ou quantum é gerenciado por 
um relógio, que possibilita a interrupção a qualquer tempo pelo SO. 
Em sistemas preemptivos um processo pode perder a CPU a qualquer 
momento para outro processo, sem qualquer aviso. Isto gera condições de corrida e 
a necessidade de semáforos, contadores de eventos, monitores, ou algum outro 
método de comunicação interprocessos. 
 
[...] A preempção também afeta o projeto do kernel do sistema operacional. 
Durante o processamento de uma chamada de sistema, o kernel pode estar 
ocupado com uma atividade em nome de um processo. Essas atividades 
podem envolver a alteração de importantes dados do kernel (por exemplo, filas 
de I/O). [...] (SILBERSCHATZ; GALVIN; GAGNE, 2015, p.235) 
 
Atualmente a maioria dos sistemas operacionais utilizam políticas de 
escalonamento preemptivas para os processos. 
 
 
 
 
5. ESCALONAMENTO CIRCULAR (ROUND ROBIN) 
 
O escalonamento circular (round robin scheduling) é um escalonamento do tipo 
preemptivo, que serve especialmente para sistemas de tempo compartilhado. 
Sua principal vantagem é não permitir que os processos monopolizem a UCP, 
sendo o tempo o tempo máximo alocado continuamente igual à fatia de tempo definida 
no sistema. 
Um problema que ocorre é que processos CPU-bound são beneficiados no uso 
do processador em relação aos processos I/O-bound, o que provoca um 
balanceamento desigual no uso processador. 
 
 
Figura 3. Escalonamento Round Robin - Fonte: INF SUL DE MINAS. 
 
 
6. ESCALONAMENTO POR PRIORIDADES 
 
No escalonamento por prioridades, os processos de maior prioridade são 
escalonados preferencialmente. O algoritmo é implementado com um clock, que 
interrompe o processador em determinados intervalos de tempo, reavaliando as 
prioridades e podendo escalonar outro processo. 
Se existir um processo na fila de pronto com prioridade maior que o processo 
em execução, o sistema operacional realiza a preempção deste processo e o 
processo com maior prioridade é escalonado. 
É muito útil em sistemas de tempo real pois permite diferenciar processos de 
acordo com sua importância, porém processos com baixa prioridade podem ficar 
indefinidamente na fila de pronto. 
 
 
 
Figura 4. Escalonamento por Prioridades - Fonte: Universidade de São Paulo. 
 
7. ESCALONAMENTO POR MÚLTIPLAS FILAS 
 
 Nesse escalonamento, os processos associados às filas em função de 
características próprias, como importância para a aplicação, tipo do processamentoou área de memória necessária. 
 A sua principal vantagem é a possibilidade da convivência de mecanismos de 
escalonamento distintos em um mesmo sistema operacional. Nesse mecanismo, o 
processo não possui prioridade, ficando essa característica associada a fila. O 
processo sofre preempção caso um outro processo entre em uma fila de maior 
prioridade’’ 
 
Figura 5. Escalonamento por Múltiplas Filas - Fonte: Universidade de São Paulo. 
● Implementa diversas filas de processos no estado pronto, onde cada processo 
é associado exclusivamente a uma delas. 
● Cada fila possui um mecanismo próprio de escalonamento, em função das 
características dos processos. 
● Cada fila possui uma prioridade associada. 
 
● O sistema só pode escalonar processos de uma fila, se todas as outras de 
prioridade maior estiverem vazias. 
 
8. CONCLUSÃO 
 
Tabela 1 – Escalonamentos e suas características 
Escalonamento Vantagem Desvantagem 
FIFO 
É um escalonamento 
simples de compreender, o 
primeiro a entrar é o 
primeiro a sair. 
Muito sensível a ordem de 
chegada. Se processos maiores 
chegarem primeiro aumentarão o 
tempo médio de espera. 
SJF 
 
Redução do tempo médio 
de turnaround dos 
processos (desde sua 
criação até seu fim). 
Pela entrada de dados ser uma 
ação imprevisível, estimar o 
tempo de uso do processador 
acaba sendo impossível. 
Preemptivo 
Prioriza a execução de 
processos como no caso 
de aplicações de tempo 
real onde o fator de tempo 
é crítico. 
Pode ocorrer interrupção de um 
processo no momento que não 
seria o mais adequado. 
Round Robin 
 
Não permitir que um 
processo monopolize a 
CPU. 
Processos CPU-Bound são mais 
beneficiados no uso do 
processador, diferente dos I/O-
Bound, pois tendem a utilizar a 
fatia de tempo completamente. 
Prioridade 
 
Permite diferenciar 
processos de acordo com 
sua importância. 
 
Sofre de Starvation, quando os 
processos com baixa prioridade 
acabam ficando indefinidamente 
na fila do “pronto”. 
Múltiplas Filas 
Possui diversos 
mecanismos de 
escalonamento em um 
mesmo sistema 
operacional. 
Um processo não pode ser 
redirecionado para outra fila mais 
adequada (para caso, no decorrer 
do tempo, seu comportamento 
seja alterado). 
Fonte: Elaborado pelos autores de acordo com a pesquisa realizada. 
 
 O escalonamento de processos é um subsistema do sistema operacional 
responsável por decidir quais processos serão executados em determinado momento. 
Nos dias atuais os sistemas utilizam de preempção para responder melhor a seus 
diversos processos existentes, somando isso a utilização de outros algoritmos em 
conjunto para uma melhor performance e decisão do escalonador (scheduler). Logo 
a melhor utilização dos escalonamentos é uma adequação conjunta dos algoritmos, 
buscando eficiência para o sistema operacional. 
 
9. REFERÊNCIAS 
 
ALEX COLETTO ENGENHEIRO DE COMPUTAÇÃO. Escalonamento de 
Processos. Disponível em <https://alexcoletta.eng.br/artigos/escalonamento-de-
processos/>. Acesso em: 26 de maio 2020. 
 
FERPA’S BLOG. Escalonamento de Processos. Disponível em 
<https://acessaferpa.wordpress.com/escalonamento-fifo/>. Acesso em: 29 de maio 
2020. 
 
GSIGMA. Gerência do Processador (Escalonamento de Processos). Disponível 
em <https://www.gsigma.ufsc.br/~popov/aulas/so1/cap8so.html>. Acesso em: 27 de 
maio 2020. 
 
IFSULDEMINAS. Redes de Computadores – Fundamentos de Sistemas 
Operacionais – 2º Período. Disponível em 
<https://www.passeidireto.com/arquivo/69218874/escalonamento-sjf>. Acesso em: 
30 de maio 2020. 
 
IME - USP. Gerência do Processador - Adão de Melo Neto. Disponível em 
<https://www.ime.usp.br/~adao/GP.pdf>. Acesso em: 04 de jun 2020. 
 
INSTITUTO DE COMPUTAÇÃO - UNICAMP. Escalonamento de Processos e 
Threads. Disponível em <https://www.ic.unicamp.br/~islene/1s2008-
mc514/sched/sched.pdf>. Acesso em: 28 de maio 2020. 
 
PASSEI DIRETO. Escalonamento-SJF. Disponível em 
<https://www.passeidireto.com/arquivo/69218874/escalonamento-sjf>. Acesso em: 
30 de maio 2020. 
 
PREZI. Algoritmo de escalonamento SJF. Disponível em 
<https://prezi.com/11dgbwmi4efe/algoritmo-de-escalonamento-sjf/>. Acesso em: 29 
de maio 2020. 
 
RAFAEL HENRIQUE DALEGRAVE ZOTTESSO. Escalonamento FIFO. Disponível 
em <http://www.zottesso.com.br/professor/disciplinas/SO/04-
Escalonamento%20FIFO.pdf>. Acesso em: 28 de maio 2020. 
 
SILBERSCHATZ, Abraham. GALVIN, Peter Baer. GAGNE, Greg. Fundamentos de 
Sistemas Operacionais. 9º Edição. Editora LTC, 2015. 
 
SLIDESHARE. Sistemas Operacionais - Escalonamento de Processos. 
Disponível em <https://pt.slideshare.net/TallesNascimentoRodrigues/sistemas-
operacionais-escalonamento-de-processos>. Acesso em: 28 de maio 2020. 
 
UEPG. FIFO Uma abordagem simples. Disponível em 
<https://deinfo.uepg.br/~alunoso/2016/FIFO/index.html>. Acesso em: 28 de maio 
2020. 
https://alexcoletta.eng.br/artigos/escalonamento-de-processos/
https://alexcoletta.eng.br/artigos/escalonamento-de-processos/
https://www.gsigma.ufsc.br/~popov/aulas/so1/cap8so.html
https://www.ime.usp.br/~adao/GP.pdf
https://www.ic.unicamp.br/~islene/1s2008-mc514/sched/sched.pdf
https://www.ic.unicamp.br/~islene/1s2008-mc514/sched/sched.pdf
https://prezi.com/11dgbwmi4efe/algoritmo-de-escalonamento-sjf/
http://www.zottesso.com.br/professor/disciplinas/SO/04-Escalonamento%20FIFO.pdf
http://www.zottesso.com.br/professor/disciplinas/SO/04-Escalonamento%20FIFO.pdf
https://pt.slideshare.net/TallesNascimentoRodrigues/sistemas-operacionais-escalonamento-de-processos
https://pt.slideshare.net/TallesNascimentoRodrigues/sistemas-operacionais-escalonamento-de-processos
https://deinfo.uepg.br/~alunoso/2016/FIFO/index.html

Continue navegando