Você está na página 1de 4

Universidade Federal de Mato Grosso do Sul

Faculdade de Computação

Aluno: Izabella Coelho

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)?

R: O objetivo de maximizar a % de CPU é sempre priorizar processos de E/S e muitas vezes


processos que são limitados por CPU exclusivamente, acabam tendo um tempo de resposta
médio maior e isso gera esse conflito.
3. O acesso ao disco necessita de um escalonador assim como acontece com o acesso à CPU?
Por que?
R: Qualquer algoritmo de escalonamento precisa ser justo com os processos na fila de
pronto. Ocupar o maximo de partes do sistema, CPU e DISCO

4. Às vezes, o escalonamento pode ser melhorado se um processo, ao ser bloqueado, puder


selecionar o próximo processo para executar na CPU. Descreva uma situação onde esse
escalonamento poderia ser empregado
R: Por exemplo, quando implementamos um aloritmo de escalonamento por prioridade.
Podemos definir que um processo antigo a cada vez que a cpu é usada, ele ganha prioridade
sobre os outros processos, ou seja quanto mais tempo um processo esta na fila de pronto,
maiores sao as chances dele ser executado após o bloqueio de um processo.
5. Cinco processos em lote A, B, C, D e E chegam a um centro de processamento no mesmo
instante. Eles têm tempos de execução estimados em 10, 6, 2, 4 e 8 minutos. Suponha que as
prioridades desses processos sejam de 3, 5, 2, 1 e 4, respectivamente, sendo 5 a prioridade
mais alta. Para cada um dos seguintes algoritmos, determine o tempo médio de turnaround.
Ignore a sobrecarga com trocas de contexto.
a) Round-robin com quantum de 2 minutos. (Resp = 20,4)
R: Tret = (30+22+6+16+28)/5 = 104/5 = 20,04
b) Escalonamento por prioridade. (Resp = 20)
R: Tret = (6 + 14 + 24 + 26 + 30) /5 = 100/5 = 20
c) FCFS (execute na ordem 10, 6, 2, 4 e 8) (Resp = 19,2)
R: 10 + 16 + 18 + 22 + 30 / 5 = 19.2
d) SJF (Resp = 14)
R: (2 + 6 + 10 + 16 + 24 + 34) = 14
6. Considere um algoritmo de escalonamento com múltiplas filas em que processos com mais
alta prioridade (primeira fila) executam por 1 quantum. Processos com a segunda maior
prioridade executam por 2 quanta. Processos com a terceira maior prioridade executam por
4 quanta e assim por diante. Sempre que um processo utiliza todo o quanta alocado a ele na
fila, o mesmo sofre um rebaixamento de prioridade. Considerando o algoritmo descrito,
suponha que exista um processo que inicialmente tenha prioridade máxima e precise de 30
quanta para finalizar. Quantas vezes esse processo será posto e retirado da CPU antes de ser
finalizado? (Resp. 5 vezes)

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.

16. As chamadas ao sistema sched_getscheduler e sched_setscheduler obtém e configuram o


algoritmo de escalonamento usado no gerenciamento de cada processo. Qual é a regra de
escalonamento padrão usada para processos do usuário no seu Linux? Existem outras
políticas? Consulte o manual Linux (man sched_setscheduler) para obter informações.

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.

Você também pode gostar