Prévia do material em texto
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
SISTEMAS OPERACIONAIS I - 10 SEM/12 – PROVA I
Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos
Aluno: __________G A B A R I T O______________ Escore: __________
1ª Questão (100 pontos)
Responda às perguntas de forma sucinta e clara.
1. Considerando os possíveis estados de um processo: novo, pronto, pronto suspenso, em execução, bloqueado, blo-
queado suspenso, novo e saída, responda: (40)
a) Esboce graficamente todas as transições de estado que podem ocorrer neste contexto.
b) Indique os estados e respectivas transições que configuram o escalonamento de curto prazo;
R: Estados: Em execução, Pronto e Bloqueado.
Transições:
Em execução � Pronto;
Em execução � Bloqueado;
Pronto � Em execução;
Bloqueado � Pronto.
c) Indique os estados e respectivas transições que configuram o escalonamento de médio prazo;
R: Estados: Pronto Suspenso e Bloqueado Suspenso.
Transições:
Bloqueado � Bloqueado Suspenso;
Bloqueado Suspenso � Bloqueado;
Bloqueado Suspenso � Pronto Suspenso;
Pronto Suspenso � Pronto;
Pronto � Pronto Suspenso;
Novo � Pronto Suspenso.
d) Apresente as possíveis causas para as transições de saída dos estados “em execução” e “bloqueado”, apre-
sentados por você no item (a).
R: Estados: Em execução, Pronto e Bloqueado.
Transições:
Em execução � Saída – Processo terminou;
Em execução � Bloqueado – Processo solicitou algum evento;
Em execução � Pronto – Fim do time slice do processo;
Bloqueado � Pronto – O evento solicitado terminou, processo pode retornar à execução;
Bloqueado � Bloqueado Suspenso – Imagem do processo foi retirado da MP (swapping);
.
Em execução
Pronto Bloqueado Bloqueado
Suspenso
Pronto
Suspenso
Novo Saída
2. Considere um sistema multitarefa com um único processador. Os processos são criados nesse sistema
segundo as informações na tabela abaixo:
Processo Instante de Ativação (ut)
Tempo
total de
CPU (ut)
Instantes de tempo de ocorrência das
operações de E/S (com relação ao seu
tempo de CPU)
Tempo gasto
pela operação
de E/S
P1 0 5 --- ---
P2 2 6 2 3
P3 3 3 1 I/O a cada 1 ut 2
P4 5 2 --- ---
P5 6 4 3 1
a) Desenhe o diagrama de tempo mostrando a alocação da UCP para cada um dos três processos se-
gundo as condições abaixo especificadas, calcule e apresente seus respectivos tempos de turna-
round: (60)
� Considere um sistema utilizando escalonamento circular com fatia de tempo (time slice) igual a
2 u.t.
� Desconsidere o tempo de mudança de contexto (troca de contexto) entre os processos.
� Considere, para sua resposta, que quando dois processos chegam juntos à fila de “prontos”, a or-
dem de preferência será para aquele que vier da fila de “novos”, “bloqueados” e “em execução.”
0 2 4 6 7 9 11 12 14 15 16 18 19 20 u.t.
FP: P1, P2, P1, P3, P4, P5, P1, P2, P3, P5, P2, P3, P5.
Turnaround (u.t.): P1 = 12, P2 = 16,
P3 = 16, P4 = 4,
P5 = 14.
Processo Início Op. E/S Fim Op. E/S
P2 4 7
P3 7 9
P3 15 17
P5 16 17
P1
P3
P4
P5
P2
2a Questão (100 pontos)
Leia, interprete e responda cada um dos itens a seguir: (a interpretação faz parte da questão)
1. Considerando a seguinte situação do sistema, apresentada abaixo (Stallings – ex.6.2): (50)
Disponibilidade de Recursos
R1 R2 R3 R4
2 1 0 0
a) Indique na matriz “Ainda precisa”, quanto cada processo ainda vai solicitar de cada recurso. (10)
R. 0 0 0 0
0 7 5 0
6 6 2 2
2 0 0 2
0 3 2 0
b) O sistema está em um estado seguro? Justifique sua resposta. (20)
R. SIM, pois dado D = [2, 1, 0, 0]
P1 termina ���� D = [2, 1, 1, 2]
P4 termina ���� D = [4, 4, 6, 6]
P5 termina ���� D = [4, 7, 9, 8]
P2 termina ���� D = [6, 7, 9, 8]
P3 termina ���� D = [6, 7, 12, 12]
c) Considerando-se= a situação inicial, se P3 solicitar uma unidade do recurso R2, e se este pedido for atendido,
o sistema permanece em um estado seguro? Justifique sua resposta. (20)
R. NÃO, pois dado D = [2, 0, 0, 0]
P1 termina ���� D = [2, 0, 1, 2]
P4 termina ���� D = [4, 3, 6, 6]
P5 termina ���� D = [4, 6, 9, 8]
P2 não termina ���� Não existem recursos disponíveis para que,
P3 não termina ���� pelo menos um dos processos termine.
Logo, a alocação de 1 unidade do recurso R2 para o processo P3 não poderá ser atendido.
Alocação Corrente Demanda Máxima “Ainda Precisa”
Processo R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4
P1 0 0 1 2 0 0 1 2 0 0 0 0
P2 2 0 0 0 2 7 5 0 0 7 5 0
P3 0 0 3 4 6 6 5 6 6 6 2 2
P4 2 3 5 4 4 3 5 6 2 0 0 2
P5 0 3 3 2 0 6 5 2 0 3 2 0
Alocação Corrente “Ainda precisa”
Processo R1 R2 R3 R4 R1 R2 R3 R4
P1 0 0 1 2 0 0 0 0
P2 2 0 0 0 0 7 5 0
P3 0 0 3 4 6 6 2 2
P4 2 3 5 4 2 0 0 2
P5 0 3 3 2 0 3 2 0
2. Observe os trechos de código abaixo implementados com base em semáforos binários e três alternativas para a função
“Consumidor”, e responda as perguntas: (50)
int n;
semaphore a = 1;
semaphore b = 1;
void Produtor ( )
{
while (true) {
produz();
wait(a);
acrescenta();
n++;
if (n == 1) signal(b); /* permite que o consumidor consuma o dado gerado */
signal(a);
}
}
Opção (a) Opção (b) Opção (c)
void Consumidor ( )
{
wait(b);
while (true) {
wait(a)
toma();
n--;
signal(a);
consome(); (*1)
if (n == 0) wait(b);
}
}
void Consumidor ( )
{
wait(b);
while (true) {
wait(a)
toma();
n--;
if (n == 0) {
consome(); (*2)
wait(b);
}
signal(a);
}
}
void Consumidor ( )
{
wait(b);
while (true) {
wait(a)
toma();
n--;
if (n == 0) {
signal(a);
wait(b);
}
else signal(a);
consome();
}
}
void main( )
{
n = 0;
parbegin
Produtor( );
Consumidor( );
parend;}
(*1) consome com buffer vazio */ (*2) só sinaliza para produtor e consome quando n for zero */
a) Qual a finalidade dos semáforos “a” e “b”? (10)
R. semáforo “a” ���� controle de exclusão mútua para acesso aos recursos manipulados em toma( ) e a
variável n;
semáforo “b” ���� sincronização entre o produtor e o consumidor
b) Verifique se ambos os semáforos estão iniciados com valores adequados com a lógica do código. Justifique
sua resposta. (10)
R. O semáforo “b” deve ser iniciado com 0 (zero) para evitar que o consumidor venha a acessar um
buffer vazio logo de início.
c) Dentre as alternativas do Consumidor, aponte aquela(s) que você julgar errada(s) e aquela(s) que você julgar
correta(s). Para a(s) que julgar incorreta(s), mostre onde está o erro de forma bem objetiva. (25)
R. “a” está incorreta, é a do livro e o erro pode ocorrer quando n=0 no consumidor e este perder a
CPU antes de executar o comando if;
“b” também está incorreta podendo gerar deadlock não liberando “a” o produtor fica impossibilitado
de produzir;
“c” está correta, mesmo que o consumidor seja interrompido dentro do if, logo após o comando
signal(a), ao retornar para execução ele já estará dentro do if e executará o comando wait(b) indepen-
dentemente do valor corrente de n.
d) Apresente uma alternativa correta para o Consumidor que você considerou incorreto na questão anterior. (5)
R. Avaliar o que for apresentado pelo aluno. Para opção (a) considerar solução do livro (pág. 215)
3a Questão (100 pontos)
1. Marque Verdadeiro (V) ou Falso (F) conforme considerar a pertinência das afirmativas a seguir, justificando em
qualquer caso:
1 ( V )
Escalonamento por prioridades onde é possível atribuir prioridades aos processos em função da
sua importância. Além disso, o mecanismo de preempção por prioridades garante o escalona-
mento imediato de processos críticos quando esses passam para o estado de pronto.
Justificativa: Verdadeiro, este tipo de escalonamento é utilizado em aplicações de tempo real.
2 ( F )
Para quatro processos (P1, P2, P3 e P4) na fila de prontos, com tempos de UCP estimados em
9, 6, 3 e 5, respectivamente, a ordem em que os processos devem ser executados para minimi-
zar o tempo de turnaround dos processos deve ser P1, P2, P3 e P4.
Justificativa: Falso, A melhor política para minimizar o tempo de turnaround seria utilizar o escalona-
mento SJF na sequência de execução P3, P4, P2 e P1.
3 ( F ) A operação wait (DOWN) sobre um semáforo de valor nulo acarreta mudança de estado do processo, de EXECUÇÃO para PRONTO.
Justificativa: Falso, a tentativa de alteração de uma variável do tipo semáforo com valor nulo provoca a
mudança de estado do processo, de EXECUÇÃO para ESPERA, causado pela sua inclusão da fila do
semáforo.
4 ( V ) Em um ambiente multiprogramável, um mesmo programa pode possuir tempos de turnaround diferen-tes.
Justificativa: Verdadeiro, em função dos processos que estão sendo executados em cada momento.
5 ( V ) Sistemas Operacionais Kernel-Level Multi-Thread mantêm estruturas conhecidas por PCB e TCB
concomitantemente.
Justificativa: Verdadeiro, ambas as estruturas são necessárias para dar identidade ao processo (PCB) e
aos Threads (TCB) de forma que ambas as instâncias possam ser vistas e gerenciadas pelo SO.
6 ( F )
A diferença entre busy waiting e idle é que no primeiro a CPU está livre, sem qualquer opera-
ção para executar e no segundo a CPU fica em loop executando alguma operação de teste, en-
quanto aguarda pela conclusão de alguma tarefa a ser realizada por alguma outra entidade.
Justificativa: Falso, é exatamente o contrário, no busy waiting a CPU fica em loop executando alguma operação
de teste, enquanto que estado idle indica que a CPU está livre, sem qualquer operação para executar.
7 ( F ) A chamada a uma system call funciona da mesma forma que a chamada a uma rotina de programa de
usuário.
Justificativa: Falso, a chamada a um system call provoca a troca do modo do processador, de usuário para ker-
nel, antes da execução da rotina do sistema solicitada.
8 ( F )
Threads ULT são criadas no nível do Kernel e são reconhecidas e vistas pelo SO e, assim, não necessi-
tam da RTL e as threads KLT são criadas no nível de usuário e precisam da existência de uma RTL que
as controle.
Justificativa: Falso, Threads ULT são criados no nível de usuário, precisam da existência de uma RTL que os
controle e os threads KLT são criados no nível do Kernel, são reconhecidas e vistas pelo SO e, assim, não neces-
sitam da RTL.
9 ( V ) É possível acontecer situações de deadlock em sistemas multitarefas, porém monousuário.
Justificativa: Verdadeiro, existe concorrência nos sistemas multitarefas independentemente do ambiente ser
também monousuário.
10 ( V )
O semáforo de sincronização tem por finalidade garantir o sincronismo entre a produção do recurso e o
consumo do mesmo, já o semáforo de exclusão mútua tem o propósito de evitar que dois ou mais pro-
cessos acessem uma mesma região crítica simultaneamente.
Justificativa: Verdadeiro, esta é a definição de semáforo de sincronização e de exclusão mútua.
"O melhor fiscal do ser humano é sua própria consciência"
CONCENTRE-SE E FAÇA UMA BOA PROVA