Baixe o app para aproveitar ainda mais
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
Compartilhar