Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS Atividade 1 - 24/12/20 Samuel de Castro Ribeiro 0032743 2.2) ATIVIDADE: [ ADIADA para 24/12 ] Faça os exercícios nº 6, 10, 12, 16 do livro-texto do autor TANENBAUM (4ª ed., pág. 57 do cap. 1). 6. 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 CPU 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? (a) Desabilitar todas as interrupções. (b) Ler o relógio da hora do dia. (c) Configurar o relógio da hora (d) Mudar o mapa de memória. 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. 21. 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? Multiplexação de tempo: impressora, teclado, placa de rede e CPU. Multiplexação de espaço: disco e memória. Multiplexação de tempo e de espaço: monitor. 27. Sistemas operacionais modernos desacoplam o espaço de endereçamento do processo da memória física da máquina. Liste duas vantagens desse projeto. A primeira vantagem seria que os sistemas operacionais modernos permitem que o tamanho do programa exceda o tamanho da memória física da máquina, utilizando a técnica da memória virtual. Outra vantagem seria que o desacoplamento de endereçamento do processo da memória física torna possível que um programa possa ser executado em diferentes partes da memória e em diferentes períodos. 2.3) ATIVIDADE: [ ACRESCENTADO ] Faça os exercícios nº 1.5, 1.10, 1.19, 1.20 do livro-texto do autor SILBERSCHATZ (9ª ed., pág. 50-52 do cap. 1). 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)? A diferença entre essas duas modalidades se baseia no fato em que a modo kernel têm acesso a todo o hardware enquanto que o modo usuário só tem acesso a algumas partes da memória, o que impossibilita o acesso direto aos dispositivos exceto pelas solicitações ao sistema operacional quando precisam executar alguma tarefa especial. Com isso, os programas de usuário ficam impossibilitados de acessar áreas críticas da memória do sistema operacional, evitando assim problemas severos no sistema. Além disso, traz a possibilidade de que diversos programas de diferentes usuários ou não, executem em um mesmo computador sem que esses programas interfiram um no outro. 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? A utilidade dos caches ocorre quando dois ou mais componentes precisam trocar dados entre si com velocidades de transferências diferentes. São capazes de resolver o problema dessa diferença de velocidade de transferências entre os componentes. Isso se resolve pois o cache fornece um buffer de velocidade intermediária entre eles. Se um componente mais rápido encontrar os dados procurados no cache, poderá acessá-los diretamente no cache sem que seja necessário aguardar o componente mais lento, tornando a resposta de acesso ao dado muito mais rápido. Os dados dos componentes e os dados armazenados no cache devem ser mantidos de forma consistente, caso contrário, os dados dos dispositivos que tiverem seus valores modificados também deverão ser modificados no cache. Esse problema ocorre em sistemas de multiprocessadores onde mais de um processo pode estar acessando um dado. Aumentar o tamanho do cache e eliminar o dispositivo de tamanho igual, só poderia ocorrer se o cache fosse mais barato, pois um armazenamento mais rápido também é mais caro. Além disso, o cache teria que reter os dados guardados quando da falta de energia elétrica (quando o computador é desligado), ou seja, teria que ser um tipo de memória não volátil. 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? As interrupções tem como objetivo indicar a concorrência de um evento, trocando os contextos, que é quando o processador para de fazer o que está fazendo para atender à solicitação do dispositivo que acionou a interrupção. A interrupção é um sinal de hardware que faz com que o processador sinalizado interrompa a execução do programa que estava sendo executado anteriormente e passa a executar a rotina que gerou essa interrupção. Já a exceção (trap) faz de forma similar as ações de uma interrupção, no entanto é uma interrupção ocasionado por software. As exceções podem ser geradas intencionalmente por um programa de usuário a fim de alertar sobre algum erro que surge no sistema. 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? A CPU pode fazer uma operação de acesso à memória gravando valores em registradores especiais que podem ser acessados de forma independente pelo dispositivo. Assim, o dispositivo inicia a operação correspondente quando recebe um comando da CPU. Quando esta operação é concluída pelo dispositivo, o dispositivo interrompe a CPU para indicar a conclusão da operação. b. Como a CPU sabe quando as operações da memória foram concluídas? A CPU sabe, pois é gerada uma interrupção por bloco o qual informa ao driver quer a operação foi concluída. c. A CPU pode executar outros programas enquanto o controlador de DMAestá transferindo dados. Esse processo interfere na execução dos programas de usuário? Caso interfira, descreva que tipos de interferência são gerados. Pode interferir já que tanto a CPU quanto o dispositivo podem estar acessando ao mesmo tempo a memória. Como o controlador da memória fornecesse acesso ao barramento da memória de forma justa entre CPU e o dispositivo, isso poderia comprometer a emissão de operações de memória pela CPU da forma mais eficiente possível (velocidade de pico), já que há uma concorrência entre ambos (CPU e dispositivo) em obter acesso ao barramento da memória.
Compartilhar