Vous êtes sur la page 1sur 7

19/09/2017 Escalonamento de processos Wikipdia, a enciclopdia livre

Escalonamento de processos
Origem: Wikipdia, a enciclopdia livre.

O escalonamento de processos ou agendador de tarefas (em ingls scheduling) uma atividade


organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribudo, possibilitando executar
os processos mais viveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound
e os CPU Bound.

O escalonador de processos de 2 nveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o
na memria principal, ficando os outros alocados em disco; com essa execuo o processador evita ficar
ocioso.

Escalonador de Processos escolhe o processo que ser executado pela CPU; O escalonamento realizado com
o auxlio do hardware; O escalonador deve se preocupar com a eficincia da CPU, pois o chaveamento de
processos complexo e custoso: Ele afeta desempenho do sistema e satisfao do usurio; O escalonador de
processo um processo que deve ser executado quando da mudana de contexto (troca de processo);

ndice
1 Tipos bsicos
1.1 Escalonador de curto prazo
1.2 Escalonador de mdio prazo
1.3 Escalonador de longo prazo
2 Definio
3 Objetivos do Escalonamento
4 Quando necessrio o uso do algoritmo de escalonamento
5 Algoritmos de escalonamento
6 Escalonamento em Sistemas em Batch
7 Estados de processos
7.1 Diagrama de Estados de Processos
8 Distribuio de Prioridades
8.1 Alterando prioridades no Windows
9 Trocas de contexto
10 Threads
11 Ligaes externas

Tipos bsicos
Escalonador de curto prazo

Seleciona entre os processos em estado de pronto que esto na memria, para serem executados pelo
processador. O escalonador de curto prazo faz decises de escalonamento muito mais frequentemente que os de
mdio e longo prazo.

Escalonador de mdio prazo

Seleciona entre os processos que esto na memria virtual. Ele temporariamente remove o processo da
memria principal e o coloca na memria secundria (swap) fazendo as operaes de swapping in e swapping
out.
https://pt.wikipedia.org/wiki/Escalonamento_de_processos 1/7
19/09/2017 Escalonamento de processos Wikipdia, a enciclopdia livre

Escalonador de longo prazo

Seleciona os processos que esto na memria secundria e que sero levados para a memria principal.
Geralmente este escalonador responsvel pelo Grau de Multiprogramao.

Definio
Para que a CPU no fique muito tempo sem executar tarefa alguma, os sistemas operacionais utilizam tcnicas
para escalonar os processos que esto em execuo ao mesmo tempo na maquina.

O escalonamento de processos uma tarefa complicada, pois nenhum algoritmo totalmente eficiente e a
prova de falhas, principalmente em se tratando de sistemas interativos, como o Windows, pois a interao com
o usurio fundamental para este sistema onde quem o utiliza procura respostas rpidas e a todo o momento
processos so interrompidos pelo usurio.

Muito atuante nos Sistemas em tempo real, onde o tempo um fator extremamente crtico, como: avies,
hospitais, usinas nucleares, bancos, multimdia, etc. Em ambientes como estes, quando um sistema tem
respostas com atraso, to ruim quanto no obter. Tipos de Sistemas em tempo real: Hard Real Time onde
atrasos no so tolerados (Avies, usinas nucleares, hospitais); Soft Real Time quando atrasos so tolerados
(Bancos, Multimdia).

O escalonador do SO utiliza alguns critrios de escalonamento, como: a taxa de utilizao de CPU, que a
frao de tempo durante a qual ela est sendo ocupada; throughput que so nmeros de processos terminados
por unidade de tempo; turnaround que o tempo transcorrido desde o momento em que o software entra e o
instante em que termina sua execuo; tempo de resposta: intervalo entre a chegada ao sistema e inicio de sua
execuo; tempo de espera: soma dos perodos em que o processo estava no seu estado pronto.

Responsveis por essa tarefa so algoritmos que so entendidos mais facilmente, estudados separadamente, mas
na pratica os sistemas operacionais utilizam combinaes deles para melhor escalonar os processos.

Objetivos do Escalonamento
O projeto de um escalonador adequado deve levar em conta uma srie de diferentes necessidades, ou seja, o
projeto de uma poltica de escalonamento deve contemplar os seguintes objetivos[carece de fontes?]:

Ser justo: Todos os processos devem ser tratados igualmente, tendo possibilidades idnticas de uso do
processador, devendo ser evitado o adiamento indefinido.

Maximizar a produtividade (throughput): Procurar maximizar o nmero de tarefas processadas por


unidade de tempo.

Ser previsvel: Uma tarefa deveria ser sempre executada com aproximadamente o mesmo tempo e custo
computacional.

Minimizar o tempo de resposta para usurios interativos.

Maximizar o nmero possvel de usurio interativos.

Minimizar a sobrecarga (overhead): Recursos no devem ser desperdiados embora algum investimento
em termos de recursos para o sistema pode permitir maior eficincia.

Favorecer processos "bem comportados": Processos que tenham comportamento adequado poderiam
receber um servio melhor.

Balancear o uso de recursos: o escalonador deve manter todos os recursos ocupados, ou seja, processos
que usam recursos sub- utilizados deveriam ser favorecidos.
https://pt.wikipedia.org/wiki/Escalonamento_de_processos 2/7
19/09/2017 Escalonamento de processos Wikipdia, a enciclopdia livre

Exibir degradao previsvel e progressiva em situaes de intensa carga de trabalho.

Como pode ser visto facilmente, alguns destes objetivos so contraditrios, pois dado que a quantidade de
tempo disponvel de processamento (tempo do processador) finita, assim como os demais recursos
computacionais, para que um proceso seja favorecido outro deve ser prejudicado. O maior problema existente
no projeto de algoritmos de escalonamento est associado natureza imprevisvel dos processos, pois no
possvel prevermos se um dado processo utilizar intensamente o processador, ou se precisar grandes
quantidades de memria ou se necessitar numerosos acessos aos dispositivos e E/S.

Quando necessrio o uso do algoritmo de escalonamento


Existem situaes nas quais um processo de escalonamento necessrio. Dentre elas esto ocasies onde um
novo processo criado; quando um processo terminou sua execuo e um prximo processo pronto deve ser
executado; quando um processo bloqueado (semforo, dependncia de E/S), resultando que outro processo
deve ser executado. Quando uma interrupo de E/S ocorre, o escalonador deve optar por: executar o processo
que estava esperando essa interrupo; continuar executando o processo que j estava sendo executado; ou
executar um terceiro processo que esteja pronto para ser executado.

Algoritmos de escalonamento
Existem os algoritmos preemptivos e os no preemptivos. Os
preemptivos so algoritmos que permitem que um processo seja
interrompido durante sua execuo, quer seja por fora de uma
interrupo de entrada/sada, quer seja em decorrncia da politica
de escalonamento adotada e aplicada por parte do escalonador de
processos ou simplesmente por fora do trmino da execuo do
processo. Aps a interrupo deste processo, ocorre o que se chama
de troca de contexto, que consiste em salvar o contedo dos Execuo do escalonamento FIFO.
registradores e a memria utilizada pelo processo e conceder a
outro processo o privilgio de executar na CPU, restaurando assim
o contexto deste ultimo processo. Cabe ressaltar que nos algoritmos no preemptivos, por serem utilizados
exclusivamente em sistemas monoprocessados, esse fato no ocorre, sendo cada programa executado at o fim.

Exemplos de Algoritmos:

FIFO[1][2][3] (First in, first out) ou FCFS (First come, first


served), em portugus:"primeiro que entra, primeiro que
sai": Onde como seu prprio nome j diz, o primeiro que
chega ser o primeiro a ser executado, no-preemptivo, ou
seja, executa o processo como um todo do incio ao fim no
interrompendo o processo executado at ser finalizado,
apenas uma fila, processos que passam para o estado de
pronto vo para o final da fila e so escalonados quando
chegam no incio. Vantagens: o mais simples entre os
Diagrama de Gantt do algoritmo FIFO
processos de escalonamento, at mais do que o Round-
Robin, todos os processos tendem a serem atendidos.
Desvantagens: muito sensvel a ordem de chegada, se processos maiores chegarem primeiro aumentaro
o tempo mdio de espera, no garante um tempo de resposta rpido.

SJF (Shortest Job First): Onde o menor processo ganhar a CPU e atrs do mesmo formar uma fila de
processos por ordem crescente de tempo de execuo, no-preemptivo. Desvantagem: baixo
aproveitamento quando se tem poucos processos prontos para serem executados.

SRT (Shortest Remaining Time): Neste algoritmo escolhido o processo que possua o menor tempo
restante, mesmo que esse processo chegue metade de uma operao, se o processo novo for menor ele
https://pt.wikipedia.org/wiki/Escalonamento_de_processos 3/7
19/09/2017 Escalonamento de processos Wikipdia, a enciclopdia livre

ser executado primeiro, preemptivo. Desvantagem: processos que consomem mais tempo de execuo
podem demorar muito para serem finalizados se muitos processos com curto tempo de execuo
chegarem.

Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os processos, para o
escalonamento sorteado um numero aleatrio para que o processo ganhe a vez na CPU, processos com
mais tokens tm mais chance de receber antes a CPU;
Algoritmo de Prioridade: Como o prprio nome j diz, um algoritmo onde cada processo no estado de
pronto recebe uma prioridade, os processos com maiores prioridades so executados primeiro,
prioridades que podem ser atribudas dinmica ou estaticamente. um Algoritmo preemptivo.

Escalonamento garantido: Este algoritmo busca cumprir


promessas de alocao de CPU o mais preciso possvel. Uma
forma completamente diferente de tratar a questo do
escalonamento fazer certas promessas ao usurio a respeito
da performance, e cumpri-las de alguma forma.Uma
promessa bem realista e muito fcil de cumprir a de que se
houver N usurios ativos na rede, cada um vai receber em
torno de 1/N da capacidade de processamento que um
usurio usou para todos os seus processos desde o momento
em que tal usurio tornou-se ativo.Como o tempo que cada
usurio gastou at o momento conhecido, fcil calcular a Diagrama de Gantt do algoritmo RR
razo entre o tempo realmente concedido ao usurio e o
tempo prometido.A idia do algoritmo por para rodar o
processo com razes mais baixas, diminuindo, em conseqncia, as razes mais altas.

RR[4][5][6] (Round-Robin): Inspirado na histria de Robin Hood onde, na procura de justia, Robin
roubava dos ricos para entregar aos pobres, fazendo assim com que todos no seu reino tivesse o mesmo
tanto de bens. Uma das mais simples e robustas entre as atuais tcnicas utilizadas para problemas de
distribuio de carga, nesse escalonamento o sistema operacional possui um timer, chamado de quantum,
onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU, depois que o
quantum acaba e o processo no terminou, ocorre uma preempo e o processo inserido no fim da fila.
Se o processo termina antes de um quantum, a CPU liberada para a execuo de novos processos. Em
ambos os casos, aps a liberao da CPU, um novo processo escolhido na fila. Novos processos so
inseridos no fim da fila.Quando um processo retirado da fila para a CPU, ocorre uma troca de contexto,
o que resulta em um tempo adicional na execuo do processo.Esta tcnica remove a necessidade de criar
sistemas para monitorao dinmica e so obviamente construdas de forma muito mais rpida e prtica
das que fazem balanceamento atravs de medies de recursos. Esta tcnica foi criada antes mesmo de
existirem computadores e at hoje utilizada em larga escala por inmeros sistemas com diferentes
propsitos. . Com exceo do algoritmo RR, FIFO e escalonamento garantido, todos os outros sofrem do
problema de Inanio (starvation), preemptivo;

Mltiplas Filas[7][8]: So usadas vrias filas de processos prontos para executar, cada processo colocado
em uma fila, e cada fila tem uma poltica de escalonamento prpria e outra entre filas, preemptivo, cada
fila tem um determinado nvel de prioridade, sendo um dos mais antigos agendadores de prioridade,
estava presente no CTSS(Compatible Time-Sharing System - Sistema Compatvel de Diviso por
Tempo).No algoritmo de Mltiplas Filas, tambm pode ser aplicado particularmente, em cada fila,
diferentes algoritmos como por exemplo, o algoritmo RR ou FCFS.
Algoritmo Fair-Share: O escalonamento feito considerando o dono dos processos, onde cada usurio
recebe uma frao da CPU e processos so escalonados procurando garantir essa frao. Se um usurio A
possui mais processos que um usurio B e os dois tm a mesma prioridade, os processos de A sero mais
demorados que os do B.

Todos os algoritmos classificam os processos em estados: Iniciando, Pronto, Executando, Entrada/ Sada e
Terminado.

Escalonamento em Sistemas em Batch


https://pt.wikipedia.org/wiki/Escalonamento_de_processos 4/7
19/09/2017 Escalonamento de processos Wikipdia, a enciclopdia livre

Algoritmo First-Come First-Served

Estratgia de permitir que o processo sendo executado continue sendo executado at ser bloqueado por
alguma razo (No-preemptivo);

Processos so executados na CPU seguindo a ordem de requisio;

Facilidade de entender e se programar;

Desvantagem: Ineficiente quando se tem processos que demoram na sua execuo

Algoritmo Shortest Job First

Estratgia de permitir que o processo sendo executado continue sendo executado at ser bloqueado por
alguma razo (No-preemptivo);

Possvel prever o tempo de execuo do processo;

Menor processo executado primeiro;

Uma das suas principais desvantagens o baixo aproveitamento quando se tem poucos processos prontos
para serem executados;

Algoritmo Shortest Remaining Time Next

Estratgia de suspender o processo sendo executado (Preemptivo);

Quando se tem processos com menor tempo de execuo, so executados primeiro;

Se um processo novo chega e seu tempo de execuo menor do que do processo corrente na CPU, a
CPU suspende o processo corrente e executa o processo que acabou de chegar;

A desvantagem desse processo que consome mais tempo podendo demorar muito para serem
finalizados, caso comece a chegar processos menores que ele;

Estados de processos
Para o sistema operacional organizar os processos que sero atendidos eles so atribudos estados para os
mesmos.

Diagrama de Estados de Processos

Quem armazena essas informaes como os estados de processos e outras como: tempo e execuo, por
exemplo, o bloco de controle de processo (PCB - Process Control Block).

Distribuio de Prioridades
Para melhorar essa distribuio da CPU entre os processos, alguns algoritmos utilizam diferentes prioridades.
Com intuito de gerenciar melhor as prioridades de processo, o sistema operacional cria filas de processos. Em
cada fila existem processos de mesma prioridade, e existe tambm fila para processos de entrada e sada.
Prioridades podem ser mudadas pelo usurio, ou atribudas automaticamente pelo sistema operacional em
questo.

Mesmo com a aplicao de prioridades e algoritmos melhor implementados, alguns processos ainda correm o
risco de sofrer starvation (ficar muito tempo sem receber a CPU) por isso em determinando momento pode
ocorrer o que chamamos de aging (O aging ocorre quando a prioridade de um processo vai se alterando com o

https://pt.wikipedia.org/wiki/Escalonamento_de_processos 5/7
19/09/2017 Escalonamento de processos Wikipdia, a enciclopdia livre

"tempo de vida" do mesmo, controlando o starvation), que muda momentaneamente a prioridade de um


processo que no executado h muito tempo e joga sua prioridade para a mais alta possvel para que ele seja
atendido, logo aps as prioridades voltam ao normal.

Outro caso em que prioridades so alteradas quando um programa de baixa prioridade comeou a fazer uso de
algum perifrico de entrada e sada antes de outro de prioridade alta. Neste caso processos de alta prioridade
so obrigados a esperarem os de baixa terminar sua E/S para poderem usar este perifrico.

Alterando prioridades no Windows

Existem ainda sistemas em que quando um processo inicia sua execuo, o sistema garante que este processo
vai ser terminado, so chamados sistemas garantidos. Nestes sistemas a interveno do usurio mnima, ao
contrario do que ocorre em sistemas em tempo real como o Windows em que o usurio interrompe processos a
todo instante por isso o sistema no garante que um processo vai ser Terminado.

Trocas de contexto
Processos so interrompidos e retomados a todo tempo, para que o sistema operacional possa fazer esse tipo de
ao, necessria a troca de contexto. Para que o sistema operacional possa interromper um processo e retomar
ele mais tarde, ele usa a PCB (Process Control Block) para guardar todas as informaes que a CPU estava
usando naquele momento e possa consulta-la mais tarde para que retome exatamente no ponto em que foi
interrompido anteriormente.

Threads
Processos podem ser divididos em pedaos para que eles no deixem de responder por algum motivo externo,
como isso poderia atrapalhar a sua execuo, ou para agilizar a programao e execuo. Quando programas
so divididos em threads, podemos ter partes do processo rodando em paralelo, pois as threads tambm so
escalonveis e todas as threads dentro de um processo compartilham o mesmo espao de endereamento.

Vantagens:

- As bibliotecas de usurio podem escalonar seus threads para otimizar o desempenho;

- A sincronizao realizada fora do ncleo, e isso evita chaveamento de contexto;

- mais portvel.

Desvantagens:

O ncleo considera o processo multithread como um nico thread de controle;

Isso pode fazer com que o desempenho fique abaixo do ideal se um thread requisitar uma operao E/S;

No pode ser escalonado para executar em mltiplos processadores ao mesmo tempo.

Ligaes externas
Scheduling algorithm (http://en.wikipedia.org/wiki/Scheduling_(computing)) em ingls
Process (computing) (http://en.wikipedia.org/wiki/Scheduling_algorithm) em ingls
Process states (http://en.wikipedia.org/wiki/Process_states) em ingls
Automated planning and scheduling (http://en.wikipedia.org/wiki/Automated_planning_and_scheduling)
em ingls
Dynamic priority scheduling (http://en.wikipedia.org/wiki/Dynamic_priority_scheduling) em ingls

https://pt.wikipedia.org/wiki/Escalonamento_de_processos 6/7
19/09/2017 Escalonamento de processos Wikipdia, a enciclopdia livre

1. A simplicidade e a importncia do Round Robin como tcnica de balanceamento - (http://imasters.co


m.br/banco-de-dados/simplicidade-e-importancia-round-robin-como-tecnica-de-balanceamento/?trace=1
519021197&source=single). 16 de outubro de 2014. Consultado em 9 de agosto de 2016
2. Escalonamento Round-Robin (http://www.ime.usp.br/~kon/MAC5755/trabalhos/software/FlavioArrud
a/node2.html). www.ime.usp.br. Consultado em 9 de agosto de 2016
3. Laboratorio de Sistemas Operacionais (http://fubica.lsd.ufcg.edu.br/hp/cursos/so/LabSO/escalon.html).
fubica.lsd.ufcg.edu.br. Consultado em 9 de agosto de 2016
4. Laboratorio de Sistemas Operacionais (http://fubica.lsd.ufcg.edu.br/hp/cursos/so/LabSO/escalon.html).
fubica.lsd.ufcg.edu.br. Consultado em 9 de agosto de 2016
5. A simplicidade e a importncia do Round Robin como tcnica de balanceamento - (http://imasters.co
m.br/banco-de-dados/simplicidade-e-importancia-round-robin-como-tecnica-de-balanceamento/?trace=1
519021197&source=single). 16 de outubro de 2014. Consultado em 9 de agosto de 2016
6. Escalonamento Round-Robin (http://www.ime.usp.br/~kon/MAC5755/trabalhos/software/FlavioArrud
a/node2.html). www.ime.usp.br. Consultado em 9 de agosto de 2016
7. Escalonamento FIFO (http://prezi.com/yckj4y46ked8/escalonamento-fifo/). prezi.com. Consultado em
9 de agosto de 2016
8. um tipo de algoritmo de escalonamento, no qual so usadas filas de processos. Cada fila tem um
determinado nvel de prioridade. Sendo um dos mais antigos agendadores de prioridade, estava presente
no CTSS (Compatible Time-Sharing System - Sistema Compatvel de Diviso por Tempo).No algoritmo
de Mltiplas Filas, tambm pode ser aplicado particularmente, em cada fila, diferentes algoritmos como
por exemplo, o algoritmo RR ou FCFS. : definio de um tipo de algoritmo de escalonamento, no qual
so usadas filas de processos. Cada fila tem um determinado nvel de prioridade. Sendo um dos mais
antigos agendadores de prioridade, estava presente no CTSS (Compatible Time-Sharing System -
Sistema Compatvel de Diviso por Tempo).No algoritmo de Mltiplas Filas, tambm pode ser aplicado
particularmente, em cada fila, diferentes algoritmos como por exemplo, o algoritmo RR ou FCFS. e
sinnimos de um tipo de algoritmo de escalonamento, no qual so usadas filas de processos. Cada fila
tem um determinado nvel de prioridade. Sendo um dos mais antigos agendadores de prioridade, estava
presente no CTSS (Compatible Time-Sharing System - Sistema Compatvel de Diviso por Tempo).No
algoritmo de Mltiplas Filas, tambm pode ser aplicado particularmente, em cada fila, diferentes
algoritmos como por exemplo, o algoritmo RR ou FCFS. (portugus) (http://dicionario.sensagent.co
m/%25C3%25A9%2520um%2520tipo%2520de%2520algoritmo%2520de%2520escalonamento,%2520n
o%2520qual%2520s%25C3%25A3o%2520usadas%2520filas%2520de%2520processos.%2520Cada%2
520fila%2520tem%2520um%2520determinado%2520n%25C3%25ADvel%2520de%2520prioridade.%2
520Sendo%2520um%2520dos%2520mais%2520antigos%2520agendadores%2520de%2520prioridad
e,%2520estava%2520presente%2520no%2520CTSS%2520(Compatible%2520Time-Sharing%2520Syst
em%2520-%2520Sistema%2520Compat%25C3%25ADvel%2520de%2520Divis%25C3%25A3o%2520
por%2520Tempo).No%2520algoritmo%2520de%2520M%25C3%25BAltiplas%2520Filas,%2520tam
b%25C3%25A9m%2520pode%2520ser%2520aplicado%2520particularmente,%2520em%2520cada%25
20fila,%2520diferentes%2520algoritmos%2520como%2520por%2520exemplo,%2520o%2520algoritm
o%2520RR%2520ou%2520FCFS./pt-pt/). dicionario.sensagent.com. Consultado em 9 de agosto de 2016

Obtida de "https://pt.wikipedia.org/w/index.php?title=Escalonamento_de_processos&oldid=49462457"

Esta pgina foi editada pela ltima vez (s) 23h46min de 31 de julho de 2017.
Este texto disponibilizado nos termos da licena Creative Commons - Atribuio - Compartilha Igual
3.0 No Adaptada (CC BY-SA 3.0); pode estar sujeito a condies adicionais. Para mais detalhes,
consulte as condies de uso.

https://pt.wikipedia.org/wiki/Escalonamento_de_processos 7/7

Vous aimerez peut-être aussi