Buscar

Aula 6

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

Prévia do material em texto

Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
49
Muitas das vezes tem-se várias coisas para se fazer e apenas um indivíduo para 
realizar as tarefas. Você mesmo pode estar pensando, basta o indivíduo escolher uma das 
tarefas, ou seja, escalonar uma das tarefas e realizar uma a uma. Assim, no final, todas 
as tarefas são executadas uma a uma, certo?; ou se pode pensar que quando se tem um 
grande problema nós dividimos esse problema em pequenas partes e resolvemos parte 
por parte; ou escalonamos uma parte e resolvemos, assim por diante, até que o grande 
problema seja resolvido.
Aula 06
ESCALONAMENTO
DE PROCESSOS
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
50
Bem, antes os computadores realizavam tarefa por tarefa em uma sequência, hoje 
realizam várias tarefas ao mesmo tempo. Como ele escolhe qual tarefa realizar primeiro, 
como ele escalona as tarefas, qual tarefa tem mais prioridade que a outra? O sistema 
operacional se encarrega disso utilizando-se de um algoritmo de escalonamento, e a parte 
do sistema operacional que faz esse escalonamento é chamado de escalonador. Como o 
tempo de CPU é um recurso muito requisitado e somente um processo de cada vez pode 
usufruir desse tempo, então, um bom escalonador faz a grande diferença no desempenho 
observado e na satisfação do usuário. 
Vejamos também que é improvável que um usuário esteja, simultaneamente, 
entrando com um documento texto e compilando um programa em segundo plano, pois 
quando um usuário digita uma letra no editor de texto, fi ca fácil para o escalonador perceber 
qual processo executar, pois o processador de texto é o único candidato. Podemos pensar 
também que com o passar dos anos os computadores se tornam cada vez mais rápidos e que 
a CPU não fi ca por muito tempo ocupada; e a maioria dos programas para computadores 
pessoais é limitada pela velocidade com que os usuários podem encontrar dados (digitando 
ou clicando); e os compiladores que eram grandes consumidores de ciclos da CPU, no 
passado, hoje duram no máximo alguns segundos. 
Quando dois programas estiverem executando ao mesmo tempo, difi cilmente 
importará qual começou primeiro, já que o usuário estará esperando, provavelmente, que 
ambos terminem. É claro que em PC simples o escalonamento não faz tanta diferença e é 
óbvio que há aplicações que consomem praticamente toda a CPU ao exibir vídeos de alta 
resolução. Isso pode exigir processamentos de imagens. Quando observamos servidores 
de estação de trabalho de alto desempenho em rede, a situação muda. Podemos observar 
múltiplos processos competindo pela CPU e, portanto, o escalonamento se torna importante. 
Por exemplo, quando um usuário manda uma mensagem e abre uma outra tela qualquer, 
se a CPU decide por atualizar a tela, mas antes decide enviar a mensagem, demora uns 2 
segundos, o que comprova que a decisão por parte da CPU é muito importante. O usuário 
classifi caria o sistema operacional como sendo muito lento, ao ter que esperar esse processo 
de primeiro enviar a mensagem e depois atualizar a tela. 
Além da escolha do processo correto para executar, o escalonador deve se preocupar 
em fazer um bom uso da CPU. Os critérios utilizados para essa seleção é composto pela 
chamada política de escalonamento, que pode ser considerada a base da gerência do 
processador e da multiprogramação de um sistema operacional.
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
51
Uma das funções básicas da política de escalonamento do sistema operacional é 
como fazer para manter o processador ocupado a maior parte do tempo: dividir o uso da 
CPU entre os processos, oferecer tempo de resposta razoável para usuários interativos e 
privilegiar a execução de aplicações críticas. Mas os sistemas operacionais não são todos 
iguais pois cada um dos sistemas operacionais possui seu controle de escalonamento 
adequado ao seu uso. Um exemplo: os sistemas de tempo compartilhado são diferentes do 
controle de escalonamento, que são diferentes do sistema de tempo real.
Os processos trabalham com surtos de entrada e saída, ou seja, são executados 
até que uma requisição de entrada e saída é chamada para ler ou escrever em um arquivo. 
Quando a chamada do sistema termina, a CPU computa novamente até que ela é chamada 
novamente para ler ou escrever dados. Podemos perceber que algumas atividades de entrada 
e saída podem ser consideradas como computação. Quando, por exemplo, a CPU copia bits 
para uma RAM de vídeo, a fi m de atualizar a tela, ela está fazendo uma computação e não 
uma atividade de entrada e saída, porque a CPU encontra-se em uso. A entrada e saída 
(E/S) tem o sentido de que um processo encontra-se em estado bloqueado, esperando que 
um dispositivo externo termine o que está fazendo. Repare na fi gura que segue, pois uma 
parte maior dos processos gasta a maior parte do tempo processando, enquanto outros 
passam a maior parte do tempo esperando uma E/S.
 Os primeiros processos são chamados de orientados à CPU e os outros de 
orientados à E/S. Os objetos orientados à CPU apresentam um tempo maior de uso da CPU 
e um tempo mais curto de espera de E/S; enquanto os objetos orientados à E/S apresentam 
um tempo mais curto de uso da CPU e maior tempo de espera pela E/S.
Figura 1
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
52
Devemos observar que, com o passar do tempo, as CPU fi cam cada vez mais 
rápidas. Assim, os processos tendem a se tornar mais orientados à E/S. Esse efeito ocorre 
porque as CPU estão fi cando mais rápidas que os discos.
E agora, qual processo executar? Bem, essa questão pode ser respondida pelo 
escalonador do sistema operacional. Em primeiro lugar, quando se cria um novo processo e 
como tomar a decisão de qual processo executar, o processo pai ou o processo fi lho? Mais 
uma vez, se os dois processos estão em estado de pronto, cabe ao escalonado selecionar 
qual dos processos ele deve executar. Uma decisão de escalonamento deve ser tomada logo 
em seguida, quando um processo termina, porque como o processo não existe mais, deve 
ser tomada a decisão de escolher um outro processo entre os que estão em estado de pronto. 
Se nenhum processo está em estado de pronto é executado um processo ocioso, gerado pelo 
próprio sistema.
Outra situação é quando o processo é bloqueado por algum problema. Isso leva 
o escalonador a ter uma decisão em qual processo executar. Muitas vezes, a escolha 
do processo é infl uenciada pelo bloqueio. Um exemplo: se um processo “A” for muito 
importante e está esperando um outro processo “B” sair da região crítica, ele deixa “B” 
executar e, em seguida, sai da região crítica. Depois o processo “A” continua a execução. O 
grande problema é que o escalonador não tem essa informação necessária para considerar 
essa dependência.
Outra situação é quando a interrupção vem de um dispositivo de E/S que encerrou 
a sua execução, pois ele pode tomar a decisão de escalonador, porque o processo que estava 
bloqueado, esperando pela E/S, pode agora fi car pronto para execução. Mas, é o escalonado 
que decide se executa o processo que acabou de fi car pronto, se continua executando o 
processo atual ou se seleciona um outro, um terceiro processo para executar.
Os algoritmos de escalonamento podem ser divididos em duas categorias quanto 
ao modo como tratam as interrupções. Um algoritmo pode ser de escalonamento não 
preemptivo, ou seja, ele escolhe um processo para executar e executa até que ele esteja 
bloqueado ou até que voluntariamente libere a CPU. Mesmo que execute por horas, ele 
não será suspenso. Depois temos o algoritmo de escalonamento de preemptivo, ou seja, 
Figura 2
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
53
escolha o processo e deixe-o em execução por um tempo máximo fi xado. Se ainda estiver 
executando ao fi nal desse tempo máximo fi xado, esse processo será suspenso e o escalonador 
selecionaoutro processo (se houver algum disponível). O escalonador preemptivo requer 
um interruptor de relógio ao fi m do intervalo desse tempo.
Temos sistemas operacionais com diferentes tipos de escalonadores. É claro que 
para cada ambiente, para cada necessidade há um tipo de sistema operacional que possa 
ser aplicado. Cada ambiente requer um tipo de sistema e os sistemas oferecem tipos de 
escalonamento diferentes. Por isso, daremos foco diferenciado a três tipos de escalonamento 
que são: Lote, Interativo e Tempo real.
Em sistemas de lote, algoritmos não preemptivos e preemptivos, que tenham 
um longo intervalo de tempo para cada processo, até são aceitáveis, pois a redução de 
alternância entre processos pode melhorar o desempenho.
No ambiente interativo é essencial a preempção, pois ela evita que um processo 
se aposse da CPU e, com isso, negue serviço aos outros. Uma falha em um programa pode 
impedir que todos os outros processos sejam executados.
Em sistema de tempo real, a preempção pode se tornar desnecessária. Ela sabe 
que não pode executar um processo por longo período, pois o processo é executado e 
bloqueado. Uma das diferenças em relação ao sistema interativo é que sistemas de tempo 
real executam apenas programas que visam ao progresso da aplicação.
Para se construir um algoritmo de escalonamento é preciso ter uma ideia do 
que o algoritmo precisa fazer. Depende, principalmente, do ambiente em que ele será 
aplicado e de decidir qual a prioridade dele (lote, interativo ou tempo real). Mas existem 
também aqueles que são desejáveis para todos os casos. Em todos os casos, a justiça 
em relação ao tempo de processamento é muito importante, pois alguns processos são 
semelhantes e assim devem ter o mesmo tratamento pela CPU. Não seria justo dar mais 
tempo da CPU para processos que são basicamente iguais. Mas há casos em que se queira 
que um processo seja tratado com um diferencial. Então essa política deve ser respeitada. 
Outro objetivo é manter todos os dispositivos ocupados. Se possível, manter a CPU o 
tempo todo ocupada e todos os dispositivos de E/S, mais trabalho por segundo será feito. 
Seguem alguns objetivos relacionados:
Todos os sistemas.
• Justiça – dar a cada processo uma porção justa da CPU.
• Aplicação da política – verifi car se a política estabelecida é cumprida.
• Equilíbrio – manter ocupada todas as partes do sistema.
Sistema de lote.
• Vazão (throughput) – maximizar o número de jobs por hora.
• Tempo de retorno – minimizar o tempo entre a submissão e o término.
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
54
• Utilização de CPU – manter a CPU ocupada o tempo todo.
Sistemas interativos.
• Tempo de resposta – responder rapidamente as requisições.
• Proporcionalidade – satisfazer as expectativas dos usuários.
Sistema de tempo real.
• Cumprimento dos prazos – evitar a perda de dados.
• Previsibilidade – evitar a degradação da qualidade de sistemas multimídia.
Fonte: Sistemas Operacionais Modernos – Andrew S. Tanenbaum Ed. Pearson Prentice Hall
ATIVIDADES 
As atividades referentes a esta aula estão disponibilizadas na ferramenta 
“Atividades”. Após respondê-las, envie-nas por meio do Portfólio- ferramenta do 
ambiente de aprendizagem UNIGRAN Virtual. Em caso de dúvidas, utilize as ferramentas 
apropriadas para se comunicar com o professor.

Continue navegando