Prévia do material em texto
• 14/09 1. Quais são as duas principais funções de um sistema operacional? • controlar o hardware e permitir executar os softwares. 3. Qual é a diferença entre sistemas de compartilhamento de tempo e de multiprogramação? • A principal diferença entre multiprogramação e compartilhamento de tempo é que a multiprogramação é a utilização efetiva do tempo da CPU, permitindo que vários programas usem a CPU ao mesmo tempo, mas o compartilhamento de tempo é o compartilhamento de uma instalação de computação por vários usuários que desejam usar a mesma instalação ao mesmo tempo. Cada usuário em um sistema de compartilhamento de tempo obtém seu próprio terminal e tem a sensação de que está usando apenas a CPU. Na verdade, os sistemas de compartilhamento de tempo usam o conceito de multiprogramação para compartilhar o tempo da CPU entre vários usuários ao mesmo tempo. 1. 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? • Isto pode trazer perda de desempenho muito grande ao sistema. Já que com a multiprogramação você tem vários processos sendo executados sequencialmente com alternância rápida e constante, se todas operações de dados envolverem E/S, sempre que pelo menos um dos processos estiver executando E/S todos os outros tem de esperar pelo término da operação. 1. Há várias metas de projeto na construção de um sistema operacional, por exemplo, utilização de recursos, oportunidade, robustez e assim por diante. Dê um exemplo de duas metas de projeto que podem contradizer uma à outra. • Dois exemplos de metas de projeto que se contradizem seriam o tempo real, o qual os recursos são alocados em momentos distintos já que há uma variedade de execução de processos e que cada um destes completa sua execução em tempos diferentes e necessidade de recursos diferentes, e outro exemplo seria a forma “justa” ao qual são repartidos os recursos entre os processos, onde nenhum processo recebe mais recursos que o outro. A contradição se dá justamente pelo fato de que um processo em tempo real pode receber recursos de forma desproporcional em relação a outros. • 16/09 2. 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. • A razão destas instruções serem privilegiadas corresponde ao fato de que muitas instruções só devem ser executadas pelo sistema operacional ou pelo administrador. Isso evita problemas relacionados à segurança e integridade do sistema. As instruções não -privilegiadas são as instruções em nível de usuário, às quais não apresentam riscos de comprometer o sistema. 10. 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. • O modo núcleo permite que a C PU execute todas as instruções em seu conjunto de instruções além de usar todos os recursos de hardware do sistema. Já o modo usuário limita o acesso da CPU a um determinado subconjunto de instruções e a um subconjunto de recursos de hardware do sistema. Esses dois modos ajudam aos programadores a executar programas de usuário em modo de usuário restringindo-os ao acesso de instruções críticas do sistema. 12. Quais das instruções a seguir devem ser deixadas somente em modo núcleo? • Opções (a) Desabilitar todas as interrupções, (c) Configurar o relógio da hora e (d) Mudar o mapa de memória. 16. 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? • Depende. Caso o driver copie os dados para um buffer privado antes da interrupção, quem chamou poderá continuar o seu processo e o processo do driver atual será suspenso. Porém, se quem chamou obtiver o controle e com isso modifica os dados de forma imediata, os dados modificados pelo chamador atual serão salvos ao final da gravação. 1.5 De que modo a diferença entre modalidade de kernel e modalidade de usuário funciona como um tipo rudimentar de sistema de proteção (segurança)? • Um bit, chamado bit de modalidade, é adicionado ao hardware do computador para indicar a modalidade corrente: kernel (0) ou usuário (1). Com o bit de modalidade, podemos distinguir entre uma tarefa que é executada em nome do sistema operacional e a que é executada em nome do usuário. A modalidade do Kernel trata da responsabilidade de um sistema se defender contra ataques externos e internos, portanto, certas instruções só podem se-executadas quando a CPU nesta modalidade, garantindo assim a segurança. A modalidade de usuário pode ser qualquer tipo de mecanismo que controle o acesso de processos ou usuários aos recursos que um sistema de fina. 1.10.Cite duas razões que tornam os caches úteis. Que problemas eles resolvem? Que problemas eles causam? Se um cache pode ser aumentado até o tamanho do dispositivo para o qual está armazenando (por exemplo, um cache tão extenso quanto um disco), por que não lhe dar esse tamanho e eliminar o dispositivo? • Os caches são úteis quando dois ou mais componentes precisam trocar dados, e esses componentes executam transferências com diferenças. Os caches resolvem o problema da transferência de fornecimento de um buffer de velocidade intermediária entre os componentes. Se o dispositivo rápido achar os dados de que precisa no cache, não espere pelo dispositivo mais lento. Os dados no cache devem ser coletivos consistentes com os dados nos componentes. Se um componente tiver um valor de dado alterado, e o dado também estiver no cache, o cache também deve ser atualizado. Isso é um problema principalmente em sistemas multiprocessadores em que mais de um processo pode estar acessando um dado. Um componente pode ser eliminado por um cache de mesmo tamanho, mas apenas se: (a) o cache e o componente possuem capacidade equivalente de salvamento de estado (isto é, se o componente retiver seus dados quando a energia é removida, o cache também deve reter dados) e (b) o cache pode ser custeado, porque uma memória mais rápida tende a ser mais cara. 1.19 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? • O objetivo das interrupções é indicar a concorrência de um evento. A diferença é que a interrupção demanda mensagem via hardware para o Sistema Operacional. Uma execução envia um programa para o Sistema Operacional. As execuções podem ser geradas intencionalmente com um hardware de alertar sobre algum erro. 1.20 O acesso direto à memória é usado em dispositivos de I/O de alta velocidade para impedir o aumento da carga de execução da CPU. a) Como a CPU interage com o dispositivo para coordenar a transferência? • Os sistemas operacionais têm um driver de dispositivo para cada controlador de dispositivos. Esse driver entende o driver de dispositivos e dispositivos uma interface uniforme entre o dispositivo e o resto do sistema operacional. b) Como a CPU sabe quando as operações da memória foram concluídas? • É gerada, uma interrupção por bloco para informar ao driver que uma operação foi concluída. c) A CPU pode executar outros programas enquanto o controladorde DMA está transferindo dados. Esse processo interfere na execução dos programas de usuário? Caso interfira, descreva que tipos de interferência são gerados. • Não interfere. Enquanto o controlador do dispositivo está fazendo essas operações uma CPU está disponível para cumprir outras tarefas.