Escolar Documentos
Profissional Documentos
Cultura Documentos
Faculdade de Computação
Sistemas Operacionais
Lista de Exercícios 03
Profª Valéria Q. Dos Reis
1. Analisando um código fonte, é possível medir se um processo é limitado pela CPU ou por
E/S? E analisando a execução desse processo? É importante para o escalonador distinguir
programas limitados por E/S de programas limitados por CPU? Por que?
R: Sim, o escalonador precisa distinguir se um programa precisa de muitos inputs do usuario,
ele vai precisar de um algoritmo preemptivo e se ele é um processo limitado por CPU, como
por exemplo calcular a media de falta dos alunos no siscad, ele precisade um algoritmo não
preemptivo ou seja, é importante pro escalonador saber diferenciar programas limitados por
E/S de programadas limitados por CPU.
2. Considerando o escalonamento de processos, como o objetivo da maximização da % de CPU
usada conflita com o critério de Minimização do Tempo de Resposta Médio (tempo entre o
início de um processo até o seu término)?
7. Um sistema de tempo real não-crítico tem quatro eventos periódicos com períodos de 50, 100,
200 e 250 ms cada. Suponha que os quatro eventos requeiram 35, 20, 10 e x ms de tempo de
CPU, respectivamente. Qual é o maior valor de x para o qual o sistema é considerado
escalonável? (Resp. x <= 12,5 ms)
R: Pelo somatório, 1.
8. Considerando o algoritmo Round-robin, qual é o problema de se utilizar um quantum muito
grande? E de se utilizar um quantum muito pequeno?
R: Se for muito pequeno, ele perde muito por conta das varias mudanças de contexto, se for
muito grande pode deixar processos menores para tras quando poderia ser otimizado.
9. Um algoritmo de escalonamento tradicional impõe um relacionamento inverso entre números
de prioridade e prioridades: quanto mais alto o número, menor a prioridade. O escalonador
recalcula as prioridades dos processos uma vez por segundo usando a função a seguir:
Prioridade = (uso_recente_CPU / 2) + base
onde base = 60 e uso_recente_CPU se refere a um valor indicando a frequência com que
um processo usou a CPU desde que as prioridades foram recalculadas pela última vez.
Suponhamos que o uso recente da CPU pelo processo P1 fosse igual a 40, pelo processo P2
fosse igual a 18 e pelo processo P3 fosse igual a 10. Quais serão as novas prioridades para
esses três processos quando as prioridades forem recalculadas? Com base nessas informações,
o escalonador tradicional elevará ou rebaixará a prioridade relativa de um processo limitado
pela CPU? Por que essa atitude do escalonador faz sentido?
R: P1 = 80 / P2 = 69 / P3 = 65
P3 > P2 > P1
Baixará, faz sentigo porque assim ele consegue otimizar o %CPU ocupado.
10. Um algoritmo de escalonamento determina a ordem de execução de processos em um
computador. Dados n processos, quantas diferentes possibilidades de escalonamento existem?
Dê uma fórmula em termos de n.
R: Como a quantidade de processos sera executada 1 por vez na CPU, N!
11. Defina a diferença entre algoritmo de escalonamento preemptivo e não preemptivo. Qual é o
problema de se utilizar algoritmos não preemptivos em um centro de processamento de dados?
R: não preemptivos - escaloador escolhe um processo para executar e o deixa ate que seja
bloqueado ou ate que voluntariamente libere a CPU
preemptivos - escalonador escolhe um processo e o deixa em execução por um tempo e ai
ele bloqueia e troca do nada a força
12. O que é starvation (inanição)? Cite uma política de escalonamento em que possa acontecer
uma situação de starvation.
R: Por exemplo no escalonamento por prioridade, pode acontecer de um processo nunca ser
executado porque outros processos tem maior prioridade do que ele.
13. Um sistema de tempo real precisa tratar duas chamadas de voz que executam a cada 5 ms e
consomem 1 ms de tempo de CPU a cada execução. Considere que o sistema precise tratar
também a exibição de um vídeo a uma taxa de 25 quadros/seg, com cada quadro necessitando
de 20 ms de tempo de CPU. Esse sistema é escalonável? Por que?
R: Para o processamento de voz, é necessário 1 ms a cada 5ms, um segundo são 200ms para
a CPU, o video precisa utilizar 25 quadros em 1s, por frame temos 20ms. Ou seja 500 ms,
então o sistema se torna escalavel pois somando temos 700 que é inferior a 1000ms.
14. Discuta duas complicações que o processamento concorrente adiciona a um sistema
operacional.
R: Ele faz os processos serem limitados a memoria a eles definida.
R: Restringir que a CPU fique com > 2 processos na fila de pronto.
15. Descreva as ações executadas por um kernel na mudança de contexto entre processos.
R: Quando existe uma troca de contexto, o estado do primeiro processo precisa ser armazenado como
está para que quando o escalonador precise retornar a este, ele retorne onde parou. Este estado vai
armazenar todos os registradores que estão vinculados ao processo, um desses é contador de programa
fisico do nuleo que atualiza com o contador de programa de cada processo (cada um tem seu proprio
contador logico). E o contador fisico apenas atualiza de acordo com o estado que o contador logico do
processo foi armazenado. E então o novo processo pode se iniciar. Essa estrutura que armazea todas as
informações, nomeamos de bloco de controle de processos.
R: Existem 3 classes para os processos linux: interativos, batch e tempo real. Cada um deles, definiem-
se em I/O bound ou CPU bound levando em consideração o tempo que ficam em E/S ou CPU. É comum
entre os escalonadores UNIX, beneficiar os processos I/O bound (Maior E/S) em relação aos CPU
bound para um tempo medio de resposta menor. A duração do processador é dividido em fatias de
tempo (quantum).Se o processo esgotar o limite, um novo processo é selecionado para execução,
provocando então uma troca. Esse procedimento é completamente transparente ao processo e baseia-se
em interrupções de tempo. Linux usa um escalonamento do tipo preemptivo.