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.