Buscar

Simulação de 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 7 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 7 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

13/08/2017 PSSAV - Simulação de Escalonamento de Processos [Artigo]
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14004 1/7
PSSAV - SIMULAÇÃO DE ESCALONAMENTO DE PROCESSOS
Autor: João Cristiano Monteiro da Silva <jcristiano.c at gmail.com> 
Data: 22/01/2013 
INTRODUÇÃO AO ESCALONAMENTO DE PROCESSOS
No sistema operacional, cada programa em execução constitui um processo. Este processo é definido como
um conjunto necessário de informações para que o sistema operacional implemente a concorrência dos
programas, ou seja, é constituído por:
Contexto de hardware → Armazena o conteúdo dos registradores gerais da CPU e registradores de
uso específico;
Contexto de software → Especifica os limites e características dos recursos que podem ser
alocados pelo processo;
Espaço de endereçamento → Determina a área de memória pertencente ao processo onde
instruções e dados serão armazenados para execução.
Um processo é classificado como CPU-bound ou I/0-bound, de acordo com a utilização do processador e
dos dispositivos de E/S. Portanto:
Processo CPU-bound →: Passa a maior parte do tempo no estado de execução, utilizando o
processador, ou no estado pronto;
Processo I/O-bound → Passa a maior parte do tempo no estado de espera, pois realiza um elevado
número de operações de E/S.
Nos sistemas multi programáveis os processos são executados concorrentemente, compartilhando o uso do
processador, memória principal e dispositivos de E/S, dentre outros recursos. A partir do momento em que
diversos processos podem estar no estado de pronto, deve-se adotar uma política de escalonamento, ou
seja, deve-se estabelecer critérios que determinarão qual processo será escolhido para fazer o uso do
processador. 
Sendo assim, a gerência de processos é uma das principais funções de um sistema operacional,
possibilitando aos programas alocar recursos, compartilhar dados, trocar informações e sincronizar suas
execuções. 
A política de escalonamento é implementada por uma rotina do sistema operacional (denominada
escalonador) e deve possuir as seguintes funções:
Manter o processador ocupado a maior parte do tempo;
Balancear o uso da CPU entre os processos;
Privilegiar a execução de aplicações críticas;
Maximizar a produtividade do sistema;
13/08/2017 PSSAV - Simulação de Escalonamento de Processos [Artigo]
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14004 2/7
Oferecer tempos de resposta razoáveis para usuários interativos.
Uma política de escalonamento pode ser classificada de acordo com a sua preempção, ou seja, se o
sistema operacional pode interromper o processo em execução e substituí-lo por outro:
Escalonamento não-preemptivo → Quando um processo está em execução nenhum evento externo
pode ocasionar a perda do uso do processador;
Escalonamento preemptivo → O sistema operacional pode interromper um processo em execução e
passá-lo para o estado de pronto, para poder alocar outro processo na CPU. Este modelo permite
que o sistema priorize a execução certos de processos além de balancear o uso da CPU entre os
processos.
ESCALONAMENTOS: FCFS E ROUND-ROBIN
ESCALONAMENTO FCFS
Escalonamento First Come-First Served (FCFS) adota a política de que o processo que chegar primeiro ao
estado de pronto será selecionado para a execução. 
Possui as seguintes características:
Estrutura → Contém uma fila para armazenar os processos que estão no estado de pronto;
Funcionamento → Quando um processo passa para o estado de pronto, ele entrará no final da fila e
será escalonado quando chegar ao seu início;
Classificação → Não preemptivo, pois um processo não pode ser interrompido quando está sendo
executado;
Deficiência → Impossibilidade de prever quando um processo terá a sua execução iniciada; falta de
uma estrutura para melhorar o tempo médio de espera dos processos; processo CPU-bound tem
vantagem em relação ao processo I/0-bound.
ESCALONAMENTO ROUND-ROBIN
Escalonamento Round-Robin (RR), cuja tradução é escalonamento em ciclo, foi o primeiro modelo a propor
uma implementação que simulasse a multitarefa em tempo real. Esta metodologia propõe que os processos
revezem o uso da CPU através de uma unidade de tempo denominada quantum (“q”), cujo valor é
determinado pela implementação do sistema operacional, podendo ter a duração de 10 a 100
milissegundos. 
Após se encerrar o quantum, o processo escalonado deve ceder o lugar na CPU a outro processo. Portanto,
o comportamento da metodologia ocorrerá em função do valor do quantum:
Elevado valor de quantum → Funcionará semelhante ao FCFS, pois os processos poderão ser
executados até o final;
13/08/2017 PSSAV - Simulação de Escalonamento de Processos [Artigo]
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14004 3/7
Baixo valor de quantum → Haverá grande sobrecarga ao sistema, pois utilizará a maior parte do
tempo para a troca de contexto.
Neste modelo os processos prontos ficam organizados em uma fila circular do tipo FIFO (primeiro a chegar,
é o primeiro a sair). O escalonador percorrerá a fila e revezará a execução dos processos até que todos
acabem. 
Logo, este escalonamento obterá as seguintes características:
Tempo de retorno e de resposta aumenta de acordo com o número de processos na fila;
Maior complexidade de implementação;
Aumento no custo operacional, devido à mudança constante de contexto de processos;
Preemptivo, pois um processo pode ser interrompido quando está sendo executado;
Menor quantidade de processos finalizados em um determinado intervalo de tempo (throughput);
Melhor tempo de resposta.
ESCALONAMENTOS: SHORTEST JOB NEXT E SHORTEST REMAINING TIME
ESCALONAMENTO SHORTEST JOB NEXT
Escalonamento Shortest Job Next (SJN), também citado em algumas fontes de pesquisa como Shortest Job
First (SJF) ou Shortest Process Next (SPN), o algoritmo seleciona o processo que tiver o menor tempo de
execução que resta para executar. 
Assim sendo, o processo que estiver no estado pronto e que necessitar de menor tempo de UCP,
considerando um mesmo contexto, passa a possuir o estado de execução. Esta metodologia busca priorizar
a uniformização do algoritmo de escalonamento Round-Robin, porém, considera o processo em estado de
execução como não apropriativo. 
A implementação desse paradigma de escalonamento foi utilizada com sistemas operacionais exclusivos
para processamento em lote. A cada novo processo admitido pelo sistema, um tempo de execução era
associado ao contexto do software. 
Como não é possível determinar precisamente esse tempo de execução, uma estimativa era realizada
considerando como base análises estatísticas de execuções passadas (heurística), podendo ser fornecidas
pelo usuário ou incorporadas aos programas. Caso o tempo de execução informado fosse muito inferior ao
tempo real, o sistema operacional poderia interromper a execução do processo. 
O principal problema dessa solução é a impossibilidade de estimar o tempo de execução de processos
interativos, já que a entrada de dados é uma ação imprevisível. 
Em sua concepção inicial, o escalonamento SJN é um escalonamento não-preemptivo. Sua vantagem no
escalonamento FCFS está na redução do tempo médio de turnaround1 dos processos, porém, no SJN é
13/08/2017 PSSAV - Simulação de Escalonamento de Processos [Artigo]
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14004 4/7
possível haver starvation2 para processos com tempo de processador muito longo, ou do tipo CPU-bound. 
Neste modelo, os processos prontos ficam organizados em uma lista em ordem crescente, baseado no
tempo de execução e o momento de chegada. Em suma, esse paradigma de escalonamento pode ser
classificador por:
Mão apropriativa;
Privilegia os processos I/O-bound;
Possui desempenho médio melhor se comparado ao paradigma FCFS;
Possui uma desvantagem de implementação, já que necessita um algoritmo de heurística eficiente;É pouco previsível;
Não é justo com processos longos.
ESCALONAMENTO SHORTEST REMAINING TIME
O algoritmo de escalonamento Shortest Remaining Time (SRT) ou Shortest Remaining First (SRF) é a
variante preemptiva do escalonamento SJF. A fila de processos a serem executados pelo SRT é organizada
conforme o tempo estimado de execução, ou seja, de forma semelhante ao SJN, sendo processados
primeiro os menores jobs. 
Na entrada de um novo processo, o algoritmo de escalonamento avalia seu tempo de execução incluindo o
job em execução, caso a estimativa de seu tempo de execução seja menor que o processo corrente em
execução, ocorre a substituição do processo em execução pelo processo recém chegado. 
A função de seleção pode ser representada simplificadamente por:
A cada mudança de contexto, o processo suspenso pela UCP deve ser recolocado em uma posição
correspondente apenas ao seu tempo restante de execução e não mais o tempo de execução total;
As sobrecargas impostas pela manutenção dos registros de tempos decorridos e pela troca de
contexto da UCP acabam sendo justificado pelo fato de pequenos processos serem executados
praticamente de imediato, minimizando o tempo médio de espera dentro de um cenário mais amplo
e tornando-se útil para sistemas de tempo repartido.
Este algoritmo também se baseia nas estimativas de tempo de execução dos processos, possuindo as
mesmas deficiências do algoritmo SJN, sendo necessário considerar:
Processos com tempo de execução curtos são priorizados;
Processos de maior duração tem seus tempos de espera variáveis em função de jobs menores que
venham a ser executados primeiramente;
Possibilidade potencial de processos grandes sendo adiados por um tempo indeterminado
(starvation) devido ao excessivo favorecimento de processos de curta duração;
Deve-se incluir um mecanismo extra para evitar que um processo, prestes a ser finalizado, sofre
alguma preempção.
13/08/2017 PSSAV - Simulação de Escalonamento de Processos [Artigo]
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14004 5/7
SOBRE O PROGRAMA DE SIMULAÇÃO E EXECUÇÃO
ONDE OBTER OS ARQUIVOS DE INSTALAÇÃO DO PSSAV
Para simulação do escalonamento abordado nesse artigo, foi utilizado o simulador PSSAV, encontrado no
repositório do code.google.com e acessível pelo link:
http://code.google.com/p/pssav/ (http://code.google.com/p/pssav/)
A versão utilizada pode ser encontrada na seção download do endereço anteriormente informado. Para as
simulações foi utilizado a versão 201007282301 para GNU/Linux (//www.vivaolinux.com.br/linux/). O PSSAV
é um aplicativo que fornece um processo de simulação de escalonamento no nível da UCP. 
Atualmente, o projeto contempla os seguintes recursos:
Animação os processos executados e na fila de espera;
Demonstração e comparativos de diferentes algoritmos de escalonamento;
Configurações personalizadas de processo;
Simulação de mais de um algoritmo considerando um conjunto de processos;
Os dados de saída são representados em forma de tabelas e gráficos;
Suporte aos algoritmos FCFS, SJF (preemptivo e não-preemptivo), PP e Round-Robin.
INSTALAÇÃO DO PSSAV
O presente artigo não compreende os passos necessários para a instalação do sistema operacional onde
será instalado o ambiente de simulação, tornando o estimado leitor livre para executar o ambiente em
diferentes sistemas operacionais de acordo com as próprias preferências. 
Para execução do ambiente de simulação, o usuário deve possuir a JRE previamente instalada e
configurada, de acordo com o ambiente de execução. Aqueles que estão acostumados com o
desenvolvimento de aplicativos utilizando o NetBeans, encontrarão uma grande familiaridade com o
ambiente de simulação. 
Utilizo a distribuição Fedora como SO principal. Então, para realizar a instalação, foi necessário apenas
baixar o script de instalação na página do projeto e atribuir o direito de execução ao arquivo: 
 chmod u+x pssav-linux.sh 
# sh pssav-linux.sh 
Se tudo correr bem o assistente de instalação do PSSAV entrará em execução, podendo ser mantidas as
definições sugeridas e pressionando "Next" para concluir a instalação. Após concluída essa etapa, basta
digitar o comando pssav em uma shell interativa e o programa logo entra em execução. 
SIMULAÇÃO DO PSSAV
13/08/2017 PSSAV - Simulação de Escalonamento de Processos [Artigo]
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14004 6/7
Com o ambiente de simulação em execução, deve-se primeiramente configurar os tempos de chegada e
execução de cada processo. Para isso, na janela "Scenario Explorer" deve-se fazer um arranjo, tal como
exibido na Figura 1:
(//img.vivaolinux.com.br/imagens/artigos/comunidade/pssav_001.jpg)
Para simplificar os passos necessários, optei por descrever o algoritmo de escalonamento Shortest
Remaining Time (SRT). Para tal, deve-se executar os seguintes passos:
A. Na janela "Scenario Explorer", selecionar o algoritmo "Preemptive Shortest-Jog-First Scheduler" na
categoria "Schedulers";
B. Na guia que se abre, clicar no botão "Play" para reprodução comportamental do algoritmo.
(//img.vivaolinux.com.br/imagens/artigos/comunidade/pssav_002.jpg)
CONCLUSÃO
Espero, com este artigo, ter exposto as características dos principais algoritmos de escalonamento
juntamente com as funcionalidades do PSSAV. 
Mais do que isso, ter sido capaz de enriquecer a compreensão dos alunos de cursos introdutórios de
sistemas operacionais, que sofrem com a ineficiência e ausência de funcionalidades de outras ferramentas
de simulação mais "badaladas". 
Como adendo, é possível percebem a riqueza da ferramenta de simulação quando utilizado no modo
comparativo com outros algoritmos de escalonamentos. Assim, o aluno terá uma percepção geral dos vários
algoritmos simultaneamente, enquanto que o instrutor pode reservar-se a descrever as características de
cada algoritmo na obtenção de um resultado em especial. 
Um comparativo entre algoritmos, pode ser visualizador nas figuras a seguir:
13/08/2017 PSSAV - Simulação de Escalonamento de Processos [Artigo]
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14004 7/7
 (//img.vivaolinux.com.br/imagens/artigos/comunidade/pssav_003.jpg) 
 (//img.vivaolinux.com.br/imagens/artigos/comunidade/pssav_004.jpg)
Bom, espero ter contribuído. 
Abraços. 
 Voltar (verArtigo.php?codigo=14004)

Outros materiais