Faculdade de Computação
Sistemas Operacionais
3a Lista de Exercícios
Prof. Cláudio C. Rodrigues
data de entrega: 14/01/2015
Problemas:
P1)
Considere as seguintes afirmativas relativas à ocorrência de "deadlocks" (ou impasses).
I. A estratégia de tratamento de "deadlocks" conhecida como prevenção requer que se
determine uma condição suficiente a que eles ocorram. Uma vez determinada a condição, os
algoritmos de manipulação dos recursos compartilhados em questão devem ser projetados de
forma que, garantidamente, ela jamais ocorra.
II. A estratégia de tratamento de "deadlocks" conhecida como detecção requer que se determine
uma condição suficiente a que eles ocorram. Uma vez determinada a condição, o tratamento
por detecção consiste em verificar sua validade e, em caso afirmativo, concluir que existe um
"deadlock".
III. As estratégias conhecidas como prevenção e detecção para o tratamento de "deadlocks" são
complementares uma à outra: Enquanto a primeira guia o projeto dos algoritmos de
compartilhamento de recursos para que "deadlocks" jamais ocorram, a segunda trata de
impedir que ocorram quaisquer condições necessárias à ocorrência de "deadlocks".
IV. Para que ocorra um "deadlock" é necessário que haja um ciclo de espera envolvendo um
determinado conjunto de processos. Uma estratégia comum de prevenção é a criação de
algoritmos de compartilhamento de recursos que impeçam a ocorrência desses ciclos.
Assinale a alternativa CORRETA:
A). Apenas a afirmativa I é verdadeira.
B). Apenas a afirmativa II é verdadeira.
C). Apenas as afirmativas I e III são verdadeiras.
D). Apenas as afirmativas II e III são verdadeiras.
E). Apenas as afirmativas II e IV são verdadeiras.
P2)
Os projetistas de Sistemas Operacionais podem recorrer a quatro tipos de estratégias para o
tratamento de deadlocks:
V. Ignorar o problema (algoritmo do avestruz).
I. Detecção (permitir a ocorrência do deadlock, detectar sua ocorrência, e tentar a recuperação).
II. Prevenção (tomar estruturalmente impossível a ocorrência de deadlocks).
III. Evitar a ocorrência de deadlocks (política de alocação de recursos bastante cuidadosa).
a) Responda: as estratégias listadas acima são potencialmente aplicáveis aos sistemas? Apresente
os prós e contras para sua utilização.
Sistemas Operacionais
1
P3)
Considere um sistema consistindo em quatro recursos do mesmo tipo, que são compartilhados
por três processos, cada um precisando no máximo de dois recursos. Mostre que o sistema
está livre de deadlock.
P4)
Analise a seguinte solução do problema de exclusão mútua de dois processos, com apenas duas
variáveis compartilhadas q e vez onde q vale 0 fora da RC e q e vez recebem o valor i
quando Pi quer entrar na RC.
P1
P2
loop forever
loop
loop while ( q > 0)
vez := 1
q := 1
while ( vez # 1)
RC
q := 0
loop forever
loop
loop while ( q > 0 )
vez := 2
q := 2
while (vez # 2)
RC
q := 0
RNC
endloop
RNC
endloop
Analise os seguintes pontos:
a) garantia de exclusão mútua
b) ausência de deadlock
c) ausência de inanição (starvation).
P5) Considere um sistema consistindo em quatro recursos do mesmo tipo, que são compartilhados
por três processos, cada um precisando no máximo de dois recursos. Mostre que o sistema está
livre de deadlock.
P6) Um escalonamento baseado em prioridade __________ incorre em menos sobrecarga que um
escalonamento baseado em prioridade __________ e, este por sua, vez é mais responsivo à
mudanças na orientação do processo (I/O bound x CPU bound).
A. dinâmica, estática
B. estática, dinâmica
C. preemptiva, não preemptiva
D. não preemptiva, preemptiva
Sistemas Operacionais
2
P7) O objetivo da multiprogramação é ter sempre algum processo em execução para maximizar a
utilização da CPU. Para um sistema uniprocessador, nunca haverá mais de um processo em
execução. Se houver mais processos, o restante terá que esperar até que a CPU esteja livre e possa
ser reescalonada. Com relação à multiprogramação e ao escalonamento de CPU é correto afirmar
que
A. uma decisão de escalonamento de CPU nunca poderá ocorrer quando um processo termina.
B. no escalonamento não-preemptivo, depois que a CPU é alocada a um processo, ele mantém a
CPU até liberá-la devido ao seu término ou ao passar para o estado de espera.
C. o escalonamento first-come, first-served (FCFS) é o algoritmo de escalonamento preemptivo
que tem uma característica especial: antes de atender ao primeiro processo da fila ele atende ao
menor processo na fila.
D. o algoritmo de escalonamento nãopreemptivo Round-Robin (RR) consiste em colocar os
processos em uma lista circular ordenados por tamanho e, em seguida, executá-los do menor
para o maior.
E. no algoritmo de escalonamento nãopreemptivo Round-Robin (RR) é definida uma unidade de
tempo igual a um ciclo de máquina denominada quantum de tempo, onde cada processo deverá
ocupar a CPU no mínimo por um quantum e no máximo por 1000 quanta. Processos com
duração menor que um quantum são considerados prontos ou em estado de espera.
P8)
A.
B.
C.
D.
E.
Dos seguintes critérios de desempenho, quais o escalonador deverá tentar otimizar?
Rendimento (throughput)
Latência
Utilização do processador
Justiça no atendimento
Todas as opções anteriores
P9) Quando o quantum de tempo usado no algoritmo RR (round robin) é muito ________ , a
sobrecarga envolvida no(na) ________ impera e, com isso, o desempenho se degrada.
A. grande, troca de contexto
B. pequeno, troca de contexto
C. grande, ajuste de prioridades
D. pequeno, ajuste de prioridades
P10) A(O) ____________ ocorre quando um processo de prioridade baixa momentaneamente recebe
uma prioridade mais alta.
A. processamento batch
B. adiamento indefinido
C. inversão de prioridade
D. envelhecimento
P11) Algoritmo de escalonamento do tipo ____________ garante que as restrições de tempo de um
processo sejam sempre cumpridas
A. preemptivo
B. não preemptivo
C. tempo real crítico
D. tempo real não crítico
P12) Descreva as diferenças entre short-term, medium-term e long-term scheduling.
P13) Defina turnaround time e throughput.
P14) O que é um programa I/O-bound? E um programa CPU-bound?
P15) Descreve o significado, finalidade, vantagens e desvantagens de preemptive scheduling.
P16) O que é um time-slice? Qual o seu interesse prático?
Sistemas Operacionais
3
P17) Qual é a condição necessária para que um esquema de preemptive scheduling possa ser
implementado? Justifique.
P18) A maioria dos escalonadores Round Robin usa um quantum de tamanho fixo. Dê um
argumento em favor de um quantum pequeno. Agora pense em um argumento que
justifique um quantum grande.
P19) Como funciona o escalonamento por múltiplas filas com realimentação? Qual a relação
entre o quantum e o nível de prioridade de cada fila nesse esquema?
P20) Crie um algoritmo de escalonamento baseado em múltiplas filas com realimentação.
Devem existir duas filas. O algoritmo entre filas deve trabalhar de forma que, com o passar
do tempo, processos I/O-bound vão para a fila 1, e processos CPU-bound para a fila 2. Não
deve ser possível a ocorrência de postergação indefinida de nenhum processo.
P21) Qual dos métodos de escalonamento discutidos em sala de aula poderia ser modificado
para acomodar alguns processos de tempo real (processos que devem ter uma resposta
dentro de certo período de tempo) misturados com os outros? Para aqueles métodos que
você poderia modificar, explique como você faria isso. Para aqueles que isso não é
possível, explique o por quê?
P22) Cinco batch jobs A, B, C, D e E chegaram a um centro de computação na ordem
especificada, essencialmente ao mesmo tempo. Eles têm as seguintes estimativas para o
tempo de execução:
Job
CPU (min)
A
7
B
5
C
3
D
4
E
6
Para cada um dos algoritmos seguintes, determine o tempo de espera médio.
a)
Round Robin
b)
FIFO
c)
SJF
Para (a), assuma que o sistema é de tempo compartilhado, com quantum de tempo de 1
unidade.
Para (b) e (c) assuma que não há preempção.
Todos os jobs são totalmente CPU bound.
P23) Medidas em certo sistema têm mostrado que em média processos executam por um
tempo T antes de bloquearem devido a uma operação de I/O. Um chaveamento de
processos requer um tempo S, que é efetivamente gasto (overhead). Para uma política de
escalonamento round-robin com quantum de tempo Q, determine uma formula para
eficiência da CPU para cada um dos seguintes casos. Assuma que há processos suficientes
para manter a CPU sempre “rodando”, além do mais, cada processo, se deixado sozinho e
sem operações de I/O, executaria para sempre.
a)
Q = infinity
b)
Q >= T
c)
Q<T
Para ser considerado um bom algoritmo de escalonamento (scheduling), este algoritmo
deve obedecer alguns critérios. Descreva-os.
Sistemas Operacionais
4
P24) De que maneira deve selecionar um algoritmo de escalonamento de CPU para um
sistema particular? Para selecionar um algoritmo, nós devemos definir primeiro a
importância relativa das medidas, nosso critério pode incluir diversas medidas. Que
medidas são estas?
P25) Intuitivamente demonstre e ordene estas opções em termos de tempo de espera médio
possíveis de serem experimentados por processos, quando FCFS scheduling é usado em
todos os casos e nenhuma preempção é permitida.
P26) A política de escalonamento Shortest-Job-First (SJF) é
a)
b)
c)
não-preemptiva
não-realista
ótima.
Explique cada um destes termos.
P27) Cinco batch jobs A - E, chegam em um centro de computação quase ao mesmo tempo.
Com tempo estimado de execução de 10, 6, 2, 4, e 8 minutos, respectivamente. Suas
prioridades (externamente determinadas) são 3, 5, 2, 1, e 4, respectivamente, com 5 sendo
a mais alta prioridade. Para cada um dos seguintes algoritmos de scheduling, determine o
turnaround time médio dos processos.
a)
Round robin (quantum 1 min.)
b)
Priority scheduling.
c)
FCFS (First-Come, First-Served) - rodando na ordem 10,6,2,4,8.
d)
Shortest Job First.
P28) Assuma que você tem os seguintes jobs para executar com um processador:
Tempo de
Prioridade
Execução
1
5
1
2
3
3
3
4
2
4
3
4
5
2
2
Assume-se que os jobs chegaram na seguinte ordem 1, 2, 3, 4, 5.
Job
a)
b)
Faça um Gantt chart ilustrando a execução destes jobs, usando FCFS, Round
robin (quantum = 1), Shortest-Job-First, e o non-preemptive Priority scheduling.
Qual é o turnaround time de cada job para cada um dos algoritmos acima?
P29) Muitos algoritmos de scheduling são parametrizados. Por exemplo, o algoritmo round
robin requer um parâmetro para indicar a fatia de tempo (quantum). Multi-level queues
requer parâmetros para definir o número de filas (queues), o algoritmo de scheduling para
cada fila e o critério usado para mover jobs entre filas, e assim por diante. Isto significa
que um dado algoritmo inclua outros (por exemplo, FCFS é um round robin com um
quantum de tempo infinito). Qual relação (se alguma) existe entre os seguintes pares de
algoritmos?
a)
Priority, Shortest-job-first
b)
Multi-level queue, FCFS
c)
Priority, FCFS
d)
Round robin, Shortest-job-first.
Sistemas Operacionais
5