Buscar

Sistemas Operacionais: Interrupções, Serviços, Scheduling, Threads e Monitores

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

P1 – Sistemas Operacionais 
 
 
1 – Qual é o objetivo das interrupções? Em que uma interrupção difere de uma exceção? As 
exceções podem ser geradas intencionalmente por um programa de usuário? Caso possam, 
com que propósito? 
R: As interrupções tem por objetivo indicar uma concorrencia de algum evento, um 
manipulador de interrupções é convocado para lidar com a causa da interrupção e logo em 
seguida o controle é devolvido ao contexto e a intrução interrompidos. 
Uma exceção é uma interrupção gerada pelo software, essa interrupção pode ser usada para 
identificar a conclusao de um I/O indicando a necessidade de polling do dispositivo, uma 
exceção pode ser usada para chamar rotinas do S.O ou para capturar erros aritmeticos. 
 
2 – Liste cinco serviços fornecidos por um sistema operacional e explique como cada um 
deles é conveniente para os usuários. Em que casos seria impossível que programas de nível 
de usuário fornecessem esses serviços? Explique sua resposta. 
R: Comunicações: O envio de mensagens entres os sistemas, precisa que essas mensagens 
sejam reunidas em pacotes de informação, enviadas para o controlador da rede, transmitidas 
através de um meio de comunicação e remontado pelo sistema do destino, logo a ordenação 
dosp acotes e a correção. 
Manipulação do sistema de arquivos: Muitos detalhes na criação, remoção, alocação e 
nomeação dps arquivos que os usuarios não devem executar, blocos de espaçco em diso são 
utilizados pelos arquivos e devem receber trilhas, excluir algum arquivo exigte a remoção das 
informações do arquvio de nomes e a liberação do espaço alocado, proteções também devem 
ser verificadas para garantir o acesso ao arquivo. 
Operações de I/O: Fitas, linhas seriais, discos e outros dispositivos podem se comunicar em um 
nivel muito baixo, o usuario precisa especificar o dispositivo e a operação que deve ser 
executada sobre ele e o sistema converte a solicitação em comandos especificos do dispositivo 
ou do controlador. 
Execução de programas: O S.O carrega o conteudo de um arquivo em memoria e incia sua 
execução. 
Detecção de erros: Acontece em nivel de hardware e de software, no nivel do hardware todas 
as trasnferencias de dados devem ser inspecionadas para garantir que estes dados nçao 
tenham sido corrompidos 
 
3 - Descreva as diferenças entre o scheduling de curto prazo, de médio prazo e de longo 
prazo. 
R: Scheduling de curto prazo seleciona entre os processos que já tiveram algum inicialização e 
estao em estado de pronto na memoria para serem executados pelo processador. 
Scheduling de medio prazo seleciona entre os processos que estao na memoria virtual 
reduzindo o grau de multiprogramação. 
Scheduling de longo prazo seleciona entres os novos processos que são limitados por entrada 
e saida e os que são limitados pelo CPU, dando prioridade para os limitados por entrada e 
saida já que utilizam menos tempo do processador. 
 
4 - Cite duas diferenças entre threads de nível de usuário e threads de nível de kernel. Sob 
que circunstâncias um tipo é melhor do que o outro? 
R: Os threads de nivel de usuario utilizam uma biblioteca do espaço do usuario sem suporte do 
kernel, enquanto que os threads de nivel de kernel invocam uma biblioteca do nivel do kernel 
com suporte direto do S.O e isso resulta em uma chada de sistema para o kernel, ocasionando 
em um desempenho mais baixo, o thread de usuario poderia ser implmentado por um S.O que 
não tivesse suporte a abstração de threds e o thread de kernel não, já o thread de kernel é 
ideal para eventos assincronos. 
 
5 - Forneça dois exemplos de programação em que a criação de múltiplos threads não 
proporciona melhor desempenho do que uma solução com um único thread. 
R: Ambientes somente com um único thread provocam uma queda de desempenho de certa 
forma devido a necessidade de utilizar varios processos e sub processos, alocar recursos para 
um deles, já o ambiente com mais de um thread fornece um otimo desempenho, já que as 
atividades são dividiso em multiplos processos. 
 
6 - O navegador Chrome da Google abre cada novo website em um processo separado. Os 
mesmos benefícios seriam alcançados se, em vez disso, a decisão de projeto do Chrome 
tivesse sido abrir cada novo website em um thread separado? Explique sua resposta. 
R: sim, pq como os threads são mini-processos dentro de um processo podendo executar 
varias tarefas usando somente um processo, teria muito mais beneficios para o desempenho 
da maquina. 
 
7 - Considere o segmento de código a seguir: 
pid_t pid; 
pid = fork(); 
if (pid == 0) {/*processo-filho */ 
fork(); 
thread_create( ... ); 
} 
fork(); 
a. Quantos processos únicos são criados? 
R: Neste codigo são criados 4 processos unicos. 
 
b. Quantos threads únicos são criados? 
R: Neste codigo são criados 2 threads. 
 
 
8 - Demonstre que monitores e semáforos são equivalentes no sentido de que podem ser 
usados para implementar soluções para os mesmos tipos de problemas de sincronização. 
R: Um monitor é um objeto projetado para ser acessado por varios threads, já o semafaro é 
um objeto de nivel inferio, podendo ser usado para implementar um monitor. 
OS monitores e os samafaros são usados para a mesma finalidade de sincornização de threas, 
um aplicativo que usa semafaros precisa liberar todos os bloqueios adquiridos por um 
encadeamento quan o o aplicativo termina, outra diferenca ao usar semafaros é que toda 
rotina que acessa um recurso compartilhado deve adquirir explicitamente um bloqueio antes 
de usar o recurso. 
 
9 - Quais são as cinco principais atividades de um sistema operacional relacionadas com o 
gerenciamento de processos? 
R: Executar o escalonamento de processos e threads na CPU, criar e excluir processos de 
usuario e do sistema, suspender e retomar processos, fornecer mecanismos de sincronização 
de processos e fornecer mecanismos de comunicação entre processos. 
 
10 - Qual é a principal dificuldade que um programador deve superar ao escrever um sistema 
operacional para um ambiente de tempo real? 
R: A maior dificuldade seria manter o SO que esta em execução dentro das restrições de 
tempo de um sistema em tempo real, se por acaso o sistema não completa a tarefa no tempo 
certo, isto pode causar uma pane no sistema todo que esta em execução, desta forma os 
esquemas de escalonamento não devem ter um tempo de respsota que ultrapasse a restrição 
de tempo de sistema.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando