Logo Passei Direto
Buscar

SO GabProva1 2012 1

User badge image
lucas breck

em

Ferramentas de estudo

Questões resolvidas

Considere um sistema multitarefa com um único processador. Os processos são criados nesse sistema segundo as informações na tabela abaixo:
a) Desenhe o diagrama de tempo mostrando a alocação da UCP para cada um dos três processos segundo as condições abaixo especificadas, calcule e apresente seus respectivos tempos de turnaround: (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 ordem de preferência será para aquele que vier da fila de 'novos', 'bloqueados' e 'em execução.'

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 escalonamento imediato de processos críticos quando esses passam para o estado de pronto.
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 minimizar o tempo de turnaround dos processos deve ser P1, P2, P3 e P4.
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.

O mecanismo de preempção por prioridades garante o escalonamento 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.
V
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 minimizar 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 escalonamento SJF na sequência de execução P3, P4, P2 e P1.
V
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.
V
F

Em um ambiente multiprogramável, um mesmo programa pode possuir tempos de turnaround diferentes. Justificativa: Verdadeiro, em função dos processos que estão sendo executados em cada momento.
V
F

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.
V
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 kernel, antes da execução da rotina do sistema solicitada.
V
F

É 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.
V
F

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 processos 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.
V
F

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Considere um sistema multitarefa com um único processador. Os processos são criados nesse sistema segundo as informações na tabela abaixo:
a) Desenhe o diagrama de tempo mostrando a alocação da UCP para cada um dos três processos segundo as condições abaixo especificadas, calcule e apresente seus respectivos tempos de turnaround: (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 ordem de preferência será para aquele que vier da fila de 'novos', 'bloqueados' e 'em execução.'

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 escalonamento imediato de processos críticos quando esses passam para o estado de pronto.
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 minimizar o tempo de turnaround dos processos deve ser P1, P2, P3 e P4.
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.

O mecanismo de preempção por prioridades garante o escalonamento 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.
V
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 minimizar 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 escalonamento SJF na sequência de execução P3, P4, P2 e P1.
V
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.
V
F

Em um ambiente multiprogramável, um mesmo programa pode possuir tempos de turnaround diferentes. Justificativa: Verdadeiro, em função dos processos que estão sendo executados em cada momento.
V
F

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.
V
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 kernel, antes da execução da rotina do sistema solicitada.
V
F

É 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.
V
F

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 processos 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.
V
F

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

Mais conteúdos dessa disciplina