Buscar

Processos e Escalonamento em Sistemas Operacionais

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 8 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 8 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

Prévia do material em texto

> Falta introdução, conclusão, bibliografia e mudar para formato de artigo (mas a prof disse que não é obrigatório usar o IEEE).
https://www.oficinadanet.com.br/post/12781-sistemas-operacionais-o-que-e-escalonamento-de-processos
http://professores.dcc.ufla.br/~heitor/Projetos/TBC_SO_WEB/artigo_TBC_SO_WEB.pdf
FACULDADE METROPOLITANAS UNIDAS
APS - SISTEMAS OPERACIONAIS
SÃO PAULO – SP
PROCESSOS (CONCEITOS PRINCIPAIS)
O que são processos?
Quando um usuário está mexendo em um computador e fazendo uso do seu sistema operacional (conceituado anteriormente), ele consequentemente está colocando programas em execução dentro do processador - e estes programas sendo executados podem ser chamados de “processos”, que representam tarefas em execução. Entretanto, vale ressaltar, que estes “processos” nem sempre têm relação direta com algum aplicativo (como um jogo ou o excel, por exemplo). Ou seja, muitos processos acontecem em segundo plano, quando possuem funções específicas que não dependem do usuário (como o serviço de impressão).
Há diferença entre ‘processo’ e ‘programa’?
	Embora pareçam sinônimos, é necessário pontuar que há diferenças entre um “processo” e um “programa”. Um processo, propriamente dito, é uma instância de um programa, e o programa, por sua vez, pode ter várias instâncias em execução. 
Bloco de Controle de Processo
	Quando um processo é criado, junto com ele é criado também o BCP - Bloco de Controle de Processo -, que é gravado no registrador. Ele funciona como um “fichário” referente ao processo criado, tendo um BCP para cada processo distinto. Dentro dele há toda informação necessária ao sistema operacional, para que este faça o gerenciamento dos processos da melhor maneira possível (como o nome, prioridade, estado, entre outras).
CPU-bound
	Os processos possuem características que se diferenciam entre si. Uma
delas é a CPU-bound, que são os processos cuja característica principal é a grande utilização do processador (CPU). Também deve-se citar que o tempo de execução de processos CPU-BOUND é definido pelos ciclos do processador. Em resumo, é um processo bastante dependente da CPU. 
I/O-bound
	Por outro lado, um processo I/O-bound tem como característica principal utilizar mais operações de E/S (entrada e saída), do que CPU. E o seu tempo de execução, diferente de processos CPU-bound, é definido pela duração das operações E/S. 
Criação e finalização de processos
	Existem algumas maneiras de se criar um processo, e são elas: a inicialização do sistema, execução de uma chamada de sistema ou requisição do usuário para criar um novo processo. 
	Para finalizar, pode-se classificar em dois tipos: término voluntário ou involuntário. 
	Um término voluntário é quando a tarefa a ser executada é finalizada (término normal) ou o processo não pode ser finalizado, pois a leitura de um arquivo não foi encontrado (término por erro).
	Já o término involuntário é definido por um algum tipo de erro, como um bug no programa (término com erro fatal) ou causado por algum outro processo (término). 	
I/O-bound
	Quando se cria um processo, ele passa a ter um dos três estados, que pode são eles: execução, bloqueado e pronto.
	Quando um processo está em “execução”, isto significa que ele está utilizando a CPU naquele instante. 
	Quando ele está em estado de “bloqueado”, isto significa que está incapaz de executar enquanto um evento externo não ocorrer (como o preenchimento de uma senha necessária, por exemplo).
	E por fim, quando um estado está em “pronto”, isto significa que ele está em memória, pronto para ser executado ou para continuar sua execução de onde havia parado. Neste caso, ele está apenas aguardando a disponibilização do processador. 
ESCALONAMENTO (CONCEITOS PRINCIPAIS)
O que é?
	Como explicado anteriormente, o sistema operacional é composto por processos que concorrem entre si (devido a multiprogramação) pelo uso da CPU a fim de serem executados. 
Entretanto, para que isso ocorra de forma inteligente e com coerência, é necessário que seja escalonado qual processo deve ocupar a CPU naquele instante. Este escalonamento, como o nome já diz, é feito por um subsistema chamado de “escalonador de processos”, responsável por decidir (por meio de algum algoritmo) qual processo deve ser notado pela CPU, através de algum critério (tempo, prioridade, entre outros).
Categorias do escalonamento 
Pode-se classificar em duas categorias distintas: não-preemptivo e preemptivo.
	Dizer que um escalonamento é “não-preemptivo” significa que este não pode interromper um processo. Ele ocorre em situações que “obrigam” que alguma decisão seja tomada.
	Por sua vez, dizer que um escalonamento é “preemptivo” significa que este pode interromper um processo. Ele ocorre em situações nas quais os processos são escolhidos, e estes, recebem um tempo de CPU. Quando este tempo é finalizado, a CPU passa a estar livre para um novo processo. 
Algoritmos de escalonamento 
Como explicado, para que o escalonador tome sua decisão de qual processo deve ocupar a CPU, é necessário o uso de um algoritmo, que por sua vez, pode ser classificado em alguns tipos dependendo do sistema operacional usado (Batch, interativo ou de tempo real). 
Sistema Batch
É o sistema que não depende da interatividade do usuário. Este sistema tem algoritmos como:
· FIFO: algoritmo não-preemptivo, que utiliza o critério de fila para realizar o escalonamento.
· SJF: algoritmo não-preemptivo, que escolhe o processo de menor tamanho.
· SRTN: mesmo sistema do SJF, sendo distinto apenas em sua categoria (este é preemptivo).
Sistemas Interativos 
É o sistema que depende da interatividade do usuário (como o Windows, por exemplo). Este sistema tem algoritmos como:
· Round-Robin (circular): algoritmo preemptivo, que se baseia em um quantum (tempo para execução que cada processo recebe). Quando este tempo é esgotado, se ainda não tiver sido finalizado, é redirecionado para o final da fila até que esteja tudo certo. Não tem prioridades. Não permite Starvation (quando um processo nunca é executado/escalonado).
· Por prioridade: algoritmo preemptivo, que se baseia em números de prioridades. O número com maior prioridade é o escolhido (e se houver dois ou mais processos com o mesmo número de prioridade, é usado o critério FIFO).
· Múltiplas filas: algoritmo preemptivo, que se baseia em um tempo maior de espera e menos de execução. Quanto maior o tempo, menor a prioridade. 
SOsim
É possível simular como é feito o escalonamento de processos. O software SOSIM é um simulador para isto, podendo facilmente ser instalado e utilizado para fins como este. Abaixo está uma foto que mostra a interface do SOsim:
	Na foto abaixo, foi criado um processo CPU-bound com prioridade 1. Além disso, podemos ver algumas informações do BCP (ou PCB, do termo em inglês) do processo, apenas clicando no botão PCB. Neste caso, foram recolhidas informações de contexto de software (prioridade, PID, tempo de UCP, tempo de criação e estado) e hardware (frames e PC). 
	No PCB deste processo, encontramos as seguintes informações: o número do seu PID é 2017551, sua prioridade é 1, seu estado no momento da captura é “Pronto”, seu tempo de criação é 228, seu tempo de UCP é 227, seu frame é 5 e o PC é 27. Este é o contexto atual. Caso aguarde alguns segundos, as informações dinâmicas estarão diferentes.
Na foto abaixo, foi criado um segundo processo I/O-bound com prioridade 1. É possível analisar que no momento da captura, o processo em execução é o segundo (I/O-bound), enquanto o processo CPU-bound encontra-se em estado de “pronto”, aguardando sua vez para ser executado na CPU (representada pelo retângulo abaixo do título “execução” dentro do console “Gerência do Processador”).
É possível analisar logo abaixo, que o processo sendo executado no momento é o CPU-bound. Enquanto, o processo I/O-bound está na fila de espera. Diferente da foto anterior, na qual mostrava a situação inversa a essa. Para que ocorra isto, é importante mencionar a mudança de contexto(que torna a concorrência entre eles possível) e o BCP, que por sua vez, torna a mudança de contexto segura e coerente.

Continue navegando