Buscar

SO GabProva1 2012 1

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

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

Outros materiais