Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO ESTÁCIO DO CEARÁ Lista 1 - Sistemas Operacionais Prof.: Estevão Simão Data de entrega: 04/10/2021 Introdução 1. Quais são as duas principais funções de um sistema operacional? É um programa que efetua o gerenciamento os componentes físicos do computador (hardware), como também uma base para os programas aplicativos. Atua como intermediário entre o usuário e o hardware do computador. 2. Qual é a diferença entre sistemas de compartilhamento de tempo e de multiprogramação? Compartilhamento de tempo permite que vários usuários acessem uma CPU remotamente através de terminais, executando seus programas na CPU de forma compartilhada. Na multiprogramação, vários programas compartilham a CPU rodando em uma única máquina. Desta forma, todo sistema de compartilhamento permite multiprogramação, mas nem todo sistema de multiprogramação permite compartilhamento de tempo, pois estão geralmente associados ao uso por um único usuário 3. Para usar a memória de cache, a memória principal é dividida m linhas de cache, em geral de 32 a 64 bytes de comprimento. Uma linha inteira é capturada em cache de uma só vez. Qual é a vantagem de fazer isso com uma linha inteira em vez de um único byte ou palavra de cada vez? O acesso à memória exibe o princípio da localidade de referência, onde, se um local é lido, a probabilidade de acessar locais próximos é muito alta, principalmente os seguintes locais de memória. Ao armazenar em cache uma linha de cache inteira, a probabilidade de ocorrência de um cache é aumentada em seguida. Além disso, o hardware moderno pode fazer uma transferência em bloco de 32 ou 64 bytes para uma linha de cache muito mais rápido do que ler os mesmos dados que palavras individuais. 4. Nos primeiros computadores, cada byte de dados lido ou escrito era executado pela CPU (isto é, não havia DMA). Quais implicações isso tem para a multiprogramação? O principal motivo da multiprogramação é dar à CPU algo para fazer enquanto aguarda a conclusão da E / S. Se não houver DMA, a CPU estará totalmente ocupada executando E / S, portanto, não há nada a ser ganho (pelo menos em termos de utilização da CPU) pela multiprogramação. Não importa quanta E / S um programa faça, a CPU estará 100% ocupada. Obviamente, isso pressupõe que o grande atraso é a espera enquanto os dados são copiados. Uma CPU poderia fazer outro trabalho se a E / S estivesse lenta por outros motivos (chegando em uma linha serial, por exemplo). 5. Instruções relacionadas ao acesso a dispositivos de E/S são tipicamente instruções privilegiadas, isto é, podem ser executadas em modo núcleo, mas não em modo usuário. Dê uma razão de por que essas instruções são privilegiadas. O acesso a dispositivos de E / normalmente é restrito para diferentes usuários. Alguns usuários podem imprimir quantas páginas quiserem, outros podem não imprimir, enquanto alguns podem se limitar a imprimir apenas um determinado número de páginas. Essas restrições são definidas pelos administradores do sistema com base em algumas políticas. Essas políticas precisam ser aplicadas para que os programas no nível do usuário não possam interferir com eles. 6. Qual é a diferença entre modo núcleo e modo usuário? Explique como ter dois modos distintos ajuda no projeto de um sistema operacional. No modo núcleo a CPU pode executar qualquer instrução de sua arquitetura, já no modo usuário somente um sub-conjunto das instruções é permitido. Desta forma, programas criados pelos usuários rodaram no modo usuário e não terão acesso a recursos críticos do sistema diretamente. 7. Quais das instruções a seguir devem ser deixadas somente em modo núcleo? (a) Desabilitar todas as interrupções, (b) Ler o relógio da hora do dia, (c) Configurar o relógio da hora do dia, (d) Mudar o mapa de memória. Desabilitar as interrupções, configurar o relógio e mudar o mapa de memória são operações que podem comprometer o funcionamento correto do sistema, portanto devem ser executadas no modo núcleo somente. 8. Um computador tem um pipeline com quatro estágios. Cada estágio leva um tempo para fazer seu trabalho, a saber, 1 ns. Quantas instruções por segundo essa máquina consegue executar? Cada instrução de nanossegundo emerge do pipeline. Isso significa que a máquina está executando 1 bilhão de instruções por segundo. Não importa quantos estágios o pipeline possui. Um pipeline de 10 estágios com 1 nsec por estágio também executaria 1 bilhão de instruções por segundo. O que importa é a frequência com que uma instrução concluída aparece no final do pipeline. 9. Quando um programa de usuário faz uma chamada de sistema para ler ou escrever um arquivo de disco, ele fornece uma indicação de qual arquivo ele quer, um ponteiro para o buffer de dados e o contador. O controle é então transferido para o sistema operacional, que chama o driver apropriado. Suponha que o driver começa o disco e termina quando ocorre uma interrupção. No caso da leitura do disco, obviamente quem chamou terá de ser bloqueado (pois não há dados para ele). E quanto a escrever para o disco? Quem chamou precisa ser bloqueado esperando o término da transferência de disco? Se o chamador recupera o controle e sobrescreve imediatamente os dados, quando a gravação finalmente ocorre, os dados errados serão gravados. Porém, se o driver primeiro copiar os dados para um buffer privado antes de retornar, o chamador poderá continuar imediatamente. Outra possibilidade é permitir que o chamador continue e dê um sinal quando o buffer puder ser reutilizado, mas isso é complicado e propenso a erros. 10.O que é uma instrução? Explique o uso em sistemas operacionais. Uma instrução é uma ordem dada ao processador do computador por um programa. Por exemplo: uma instrução de trap alterna o modo de execução de uma CPU do modo de usuário para o modo de kernel. Esta instrução permite que um programa do usuário chame funções no kernel do sistema operacional. 11. Por que a tabela de processos é necessária em um sistema de compartilhamento de tempo? Ela também é necessária em sistemas de computadores pessoais executando UNIX ou Windows com um único usuário? A tabela de processos é necessária para armazenar o estado de um processo atualmente suspenso, pronto ou bloqueado. Os sistemas modernos de computadores pessoais têm dezenas de processos em execução, mesmo quando o usuário não está fazendo nada e nenhum programa está aberto. Eles estão procurando atualizações, carregando email e muitas outras coisas. Em um sistema UNIX, use o comando ps -a para vê-las. Em um sistema Windows, use o gerenciador de tarefas. 12.Existe alguma razão para que você quisesse montar um sistema de arquivos em um diretório não vazio? Se a resposta for sim, por quê? A montagem de um sistema de arquivos torna os arquivos já existentes no diretório do ponto de montagem inacessíveis, portanto os pontos de montagem normalmente estão vazios. No entanto, um administrador de sistema pode querer copiar alguns dos arquivos mais importantes normalmente localizados no diretório montado para o ponto de montagem, para que possam ser encontrados no caminho normal em uma emergência quando o dispositivo montado estiver sendo reparado 13.Para cada uma das chamadas de sistema a seguir, dê uma condição que a faça falhar: fork, exec e unlink. fork pode falhar se não houver slots livres restantes na tabela de processos (e possivelmente se não houver memória ou espaço de troca restante). exec pode falhar se o nome do arquivo fornecido não existir ou não for um arquivo executável válido. unlink pode falhar se o arquivo a ser desvinculado não existir ou o processo de chamada não tiver autoridade para desvinculá-lo. 14.O que é uma system call e qual sua importância para a segurança do sistema? Como as system calls são utilizadas por um programa? É uma implementação de mecanismos de proteção ao núcleo do sistema e de acesso aos seus serviços. Essa chamada de sistema tem por importância garantir a integridade do sistema. Para cada serviço existe uma System Call associadae cada sistema operacional tem seu próprio conjunto de chamadas. 15.O que é concorrência e como este conceito está presente nos sistemas operacionais multiprogramáveis? Concorrência é a possibilidade de se executar diversas instruções ao mesmo tempo. Nos sistemas multiprogramáveis este raciocinio é o fundamento básico da multiprogramação. 16.Por que o mecanismo de interrupção é fundamental para a implementação da multiprogramação? Porque permite desvios na programação das rotinas e permite que o Sistema Operacional sincronize a execução de todas as suas rotinas e dos programas dos usuários, além de controlar dispositivos. 17.Explique o mecanismo de funcionamento das interrupções. Uma interrupção é sempre gerada por algum evento externo ao programa e, neste caso, independe da instrução que está sendo executada. Ao final da execução de cada instrução, a unidade de controle verifica a ocorrência de algum tipo de interrupção. Neste caso, o programa em execução é interrompido e o controle desviado para uma rotina responsável por tratar o evento ocorrido, denominada rotina de tratamento de interrupção. Para que o programa possa posteriormente voltar a ser executado, é necessário que, no momento da interrupção, um conjunto de informações sobre a sua execução seja preservado. Essas informações consistem no conteúdo de registradores, que deverão ser restaurados para a continuação do programa. 18. O que é DMA e qual a vantagem desta técnica? É uma característica dos computadores mais modernos que possibilita que determinados subsistemas de hardware dentro do computador acessem a memória do sistema, sem depender CPU. A técnica de DMA permite que um bloco de dados seja transferido entre a memória principal e dispositivos de E/S, sem a intervenção do processador, exceto no início e no final da transferência. 19.Como a técnica de buffering permite aumentar a concorrência em um sistema computacional? A técnica permite aumentar a ocorrência em um sistema porque ela minimiza o problema da disponibilidade da velocidade de processamento existente entre processador e os dispositivos de E/S. Portanto, a técnica mantem o processador e dispositivos de E/S ocupados na maior parte do tempo. 20.Explique o mecanismo de spooling de impressão. Um sistema de spooler de impressão é um mecanismo utilizado entre a impressora e o computador para gerenciar a saída de trabalhos de impressão. Isso permite que o computador para realizar outros processos, sem esperar que a impressora para imprimir cada trabalho de impressão solicitado. 21.O que é um sistema fracamente acoplado? Qual a diferença entre sistemas operacionais de rede e sistemas operacionais distribuídos? Os sistemas fracamente acoplados possuem dois ou mais sistemas computacionais conectados através de linhas de comunicação. Por destas características, os sistemas fracamente acoplados também são conhecidos como multicomputadores. A diferença entre os dois tipos de sistemas é que em sistemas fortemente acoplados existe uma memória compartilhada por todos os processadores, enquanto nos fracamente acoplados, cada sistema tem sua própria memória individual. 22.Qual tipo de multiplexação (tempo, espaço ou ambos) pode ser usado para compartilhar os seguintes recursos: CPU, memória, disco, placa de rede, impressora, teclado e monitor? Ambos 23.A chamada count = write(fd, buffer, nbytes); pode retornar qualquer valor em count fora nbytes? Se a resposta for sim, por quê? Sim, essa chamada pode retornar algum valor diferente de nbytes. Por dois motivos, um final de arquivo foi encontrado antes, ou o arquivo não pôde ser lido. 24.Qual é a diferença essencial entre um arquivo especial de bloco e um arquivo especial de caractere? Arquivos especiais de bloco são usados para modelar dispositivos que fornecessem endereçamento aleatório, como discos. Arquivos especiais de caracteres são usados para modelar dispositivos que utilizem acesso serial aos dados, como modens e impressoras. 25.Explique como a separação da política e mecanismo ajuda na construção de sistemas operacionais baseados em micronúcleos. Quando há a separação entre mecanismo e políticas em sistemas operacionais baseados em micronúcleos a um extremo, permite que os designers implementem um conjunto básico de blocos de construção primitivos no núcleo. Esses blocos são praticamente independentes da política e isso ajuda na implementação de mecanismos e políticas mais avançadas para que estas sejam adicionadas por meio de módulos de kernel criados pelo usuário ou por meio dos próprios programas de usuário. 26.Quais as vantagens do modelo de máquina virtual? O menor uso de servidores e, com isso, uma economia em compra de equipamentos, em sua manutenção, em energia e em refrigeração do ambiente. Também reduz custos relacionados à instalação, atualização e manutenção de servidores. 27.Máquinas virtuais tornaram-se muito populares por uma série de razões. Cite quais suas vantagens e faça uma comparação com o modelo exonúcleo. O uso de máquinas virtuais traz como vantagem o menor uso de servidores e, com isso, uma economia em compra de equipamentos, em sua manutenção, em energia e em refrigeração do ambiente. Também reduz custos relacionados à instalação, atualização e manutenção de servidores. Em vez de clonar a máquina real, como nas VMs, outra estratégia é dividi-la ou dar a cada usuário um subconjunto de recursos. Assim uma VM pode ter os blocos de 0 a 1023 do disco e outra de 1024 a 2047 e assim por diante. Na camada inferior há o programa exonúcleo responsável por alocar recursos às VMs e verificar as tentativas de uso para assegurar que uma máquina não esteja utilizando os recursos de outra. Cada VM pode utilizar seu próprio sistema operacional, mas somente com os recursos que pediu e que foram alocados. Este tem vantagem de separar, com menor custo, a multiprogramação (no exonúcleo) do código do SO do usuário, visto que o exonúcleo mantém as VMs umas fora do alcance das outras. 28.Pesquise e enumere comandos disponíveis em linguagens de controle de sistemas operacionais. · Unix · ps: lista processos do sistema operacional · ls: lista conteúdos e diretórios · rm: remove algum arquivo, passando o parâmetro -r é possível remover um diretório · cat: concatena e imprime arquivos · >: aponta a saída de um programa para outro dispositivo ou arquivo · : concatena um comando a outro · touch: altera a data de modificação de um arquivo · MS-DOS · md: cria uma pasta · del: remove algum arquivo 29.Compare as arquiteturas monolítica e de camadas. Quais as vantagens e desvantagens de cada arquitetura? A primeira é composta por módulos que se comunicam livremente e a segunda é arquitetada em camadas, classificando as funções em cada uma destas camadas. A arquitetura monolítica funcionou muito bem até o sistema operacional se tornar complexo. Como foi evoluindo muito rápido, também se tornou complexo e de difícil manutenção. Este sistema consegue isolar as funções do sistema operacional e cria uma hierarquia dos modos de acesso. 30.Como funciona o modelo cliente-servidor na arquitetura microkernel? Quais as vantagens e desvantagens dessa arquitetura? Funciona como um sistema de chamadas cliente-servidor. O cliente, que pode ser um usuário ou recurso do sistema, faz uma chamada e o sistema verifica a possibilidade de execução ou não do comando. Como vantagem, o sistema desabilita e recusa as chamadas comprometedoras e disponibiliza mais recursos para as que possuem. Como desvantagem, o sistema tem problemas com acesso a certas partes diretas do hardware, que seriam necessárias.
Compartilhar