Sistemas Operacionais

Embed Size (px)

Citation preview

Perguntas e respostas para o exame do ENADE.Faculdade de Alagoas FAL. Sistemas Operacionais. Professor MSc Luis Henrique T. Caetano.

1) Os termos processo e programa so sinnimos? resposta: Falso, um processo um programa em execuo; um programa uma entidade inanimada.

2) A qualquer dado instante, somente um processo pode executar instrues em um computador? resposta: Falso, um computador multiprocessador pode ter tantos processos em execuo quantos so os processadores.

3) Um processo entra no estado de bloqueado quando est esperando que um evento ocorra. Cite 3 eventos que podem fazer um processo entrar em estado de bloqueado? resposta: Um processo entra no estado de bloqueado quando emite uma requisio dados localizados em dispositivos tais como: um disco rgido, de um recurso que est alocado a um outro processo e indisponvel naquele momento (exemplo, impressora), ou a espera de algum evento como a utilizao do teclado, mouse, etc.

4) Como o sistema operacional impede que um processo monopolize um processador? resposta: Um relgio de interrupo gera uma interrupo aps um quantum de tempo especificado, e o sistema operacional despacha um outro processo para executar.

5) O que o BCP (bloco de controle de processos) e qual a finalidade da tabela de processos? resposta: O BCP uma estrutura de dados que armazena as informaes que o sistema operacional necessita para gerenciar o processo, visto que o BCP inclui informaes sobre o processo tais como: ID, estado do processo, prioridade de escalonamento, credenciais, ponteiros, etc. A tabela habilita o sistema operacional a localizar o BCP de cada processo atravs da sua ID.

6) Cite uma alternativa para interrupo e explique por que usada? resposta: Um sistema poderia executar sondagem, na qual o processador verifica, periodicamente, o estado dos dispositivos. Esta tcnica raramente usada porque cria uma significativa sobrecarga quando o processador sonda dispositivos cujo o status no mudou.

7) Na arquitetura IA-32, quais os dois tipos de sinais um processador pode receber? resposta: Um processador pode receber interrupes ou excees. Interrupes indicam que ocorreu um evento; excees indicam que ocorreu um erro.

8) Qual a maior desvantagem de usar sinais para a comunicao entre processos, e quais as trs maneiras pelas quais um processo pode responder a um sinal? resposta: Sinais no suportam a troca de dados interprocessos; e um processo pode capturar ignorar ou mascarar um sinal.

9) Por que sistemas distribudos adotam troca de mensagens, e no de sinais? resposta: Sinais so tipicamente de uma arquitetura, alm disso sistemas distribudos requerem a transmisso de dados para comunicao entre processos de diferentes mquinas.

10) Por que um processo deve usar a comunicao entre processos para compartilhar dados com outros processos? resposta: O sistemas operacional no permite que processos no relacionados compartilhem o segmento de dados de seus espaos de memria; ou seja, os dados armazenados por um processo so inacessveis a processos no relacionados. Portanto o sistema operacional deve fornecer algum mecanismo que torne os dados de um processo disponvel para outro.

11) Como um projeto de software melhorado ajuda a fazer que aplicaes multithread executem mais rapidamente? resposta: Muitas aplicaes contm segmentos de cdigos que podem executar independentemente uns dos outros. Porm, quando designados para threads, esses segmentos de cdigo podem, por exemplo, executar em mltiplos processadores simultaneamente.

12) Por que threads do mesmo processo em geral se comunicam mais eficientemente do que em processos separados? resposta: Threads do mesmo processo podem se comunicar por seu espao de endereamento compartilhado e no precisam depender de mecanismos de comunicao interprocessos que invoquem o ncleo.

15) Explique por que a implementao de threads de usurio promovem a portabilidade? resposta: Threads de usurio apresentam uma API que independente da API do sistema operacional.

16) Por que ineficiente uma aplicao especificar um tamanho de reservatrio de threads maior do que o nmero mximo de threads de usurio prontos, em qualquer instante, durante uma execuo da aplicao? resposta: Cada thread operrio do reservatrio de threads consome recursos do sistema, tal como a memria. Se o nmero de threads operrios for maior que o nmero de threads de usurio prontos, o sistema incorre em sobrecarga devido a criao desnecessria de threads e a alocao ineficiente de memria.

17) Qual problema poderia ocorrer se uma varivel condicional usasse uma fila por prioridade ao invs de uma fila FIFO? resposta: Um thread de prioridade mais baixa poderia ser adiado indefinidamente por um fluxo de threads chamando a instruo wait ao entrar na fila de prioridades.

18) Cite um grande problema da implementao de semforos no ncleo? resposta: Semforos podem evitar espera ociosa. O ncleo pode suspender um thread que tentar uma operao P quando o valor corrente do semfaro for 0 e lev-lo de volta fila de prontos quando uma operao V for chamada, o que pode melhorar o desempenho.

19) Se um thread entrar em lao infinito aps desabilitar interrupes em um sistema multiprocessador, o sistema operacional no pode mais executar? resposta: Falso. O sistema operacional pode executar em qualquer processador no qual as interrupes no estejam desabilitadas. O thread que entrou em lao infinito pode ser abortado ou reiniciado, mas quaisquer dados que ele compartilhe com outros threads podem ficar em estado inconsistente, causando erros de programa.

20) Descreva por que a excluso mtua de n threads pode ser difcil em um sistema distribudo ou de rede? resposta: H uma latncia entre o envio de uma mensagem por um computador e o recebimento dessa mensagem pelo computador receptor o que significa que algoritmos de excluso mtua devem considerar atrasos entre o momento em que um thread modifica uma varivel compartilhada e um outro thread tenta entrar em sua seo crtica.

21) Quais as semelhanas e diferenas entre deadlock e adiamento indefinido? resposta: So semelhantes porque ocorrem quando processos esperam por um evento. O deadlock acontece porque o evento nunca ocorrer; o adiamento indefinido sucede porque no se tem certeza se e quando o evento ocorrer (devido a vieses nas polticas de escalonamento de recursos do sistema).

22) O algoritmo de Dekker e o algoritmo de Peterson impediam que um processo fosse adiado indefinidamente para entrar em sal seo crtica. Descreva como o adiamento indefinido foi evitado. Como est relacionado ao envelhecimento (aging)? resposta: Tanto o algoritmo de Dekker quanto o algoritmo de Peterson davam preferncia ao processo espera quando o recurso tornava-se disponvel novamente, o que semelhante ao envelhecimento (aging), porque o processo espera ganha uma prioridade mais alta pro estar esperando.

23) Descreva os benefcios e desvantagens de parties de tamanhos grandes e pequenos? resposta: Parties maiores permitem que programas grandes executem, mas resultam em fragmentao interna para programas pequenos. Parties pequenas reduzem a quantidade de fragmentao interna e aumentam o nvel de multiprogramao, permitindo que mais programas residam na memria ao mesmo tempo, mas limitam o tamanho do programa.

24) Explique a diferena entre fragmentao interna e fragmentao externa? resposta: Fragmentao interna ocorre em ambientes de partio fixa quando alocado a um processo mais espao do que ele necessita, resultando em desperdcio de espao de memria dentro de cada partio. Fragmentao externa ocorre em ambientes de partio varivel, quando a memria desperdiada devido s lacunas que se desenvolvem na memria entre as parties.

25) Descreva duas tcnicas para reduzir fragmentao em sistemas de multiprogramao por partio varivel? resposta: Coalescncia funde blocos memria livres adjacentes em um nico bloco maior. Compactao de memria realoca parties para que fiquem adjacentes umas das outras de modo que seja consolidada a memria livre em um nico bloco.

FIM