Gabarito da Segunda Lista de Exercícios - SO I - 99/2 Stallings 2.2) Esse algoritmo favorece programas I/O bound pois esses programas (em geral) ao tomar posse do processador logo ficarão bloqueados para uma nova operação de I/O. Depois de um certo tempo, num passado recente não terá sido dado nenhum tempo de CPU para programas processor-bound e chegará a vez desses processos (processor-bound) terem oportunidade. 2.5) A idéia das chamadas ao sistema (system calls) é fornecer aos processos que rodam em modo usuário sub-rotinas genéricas prontas. Tais sub-rotinas são complexas (manipulam diretamente o hardware) e são frequentemente necessarias (escrever/ler em um drive de disco, bloquear um processo etc.). O chaveamento entre modos de operação (kernel/usuário e usuário/kernel) pode ser feito a partir de chamadas ao sistema. Silberchatz 2.3) Um processo que tenha sido criado como processo usuário só será executado com a CPU funcionando em modo usuário. Assim, se tal processo tentar executar uma instrução do modo supervisor ele não conseguirá (ocorrerá um erro). 2.4) Ambas levam o Sistema Operacional a ganhar novamente o controle do processador. A função TRAP tem sua causa associada com a instrução que está sendo executada no momento e serve para que seja dado um tratamento a um erro ou exceção ocorrida. Já uma interrupção é ocasionada pela ocorrência de um evento assíncrono externo à instrução que está sendo executada no momento e serve para dar uma resposta a esse evento. 2.5) O DMA é útil quando desejamos transferir um longo bloco de dados para a memória, pois para transferência de poucas palavras não há vantagem considerável sobre a técnica de I/O por interrupção (com DMA temos o "roubo de ciclos de barramento") e à medida em que aumenta o número de palavras a serem transferidas a vantagem comparativa do DMA com relação a técnica de I/O por interrupção aumenta (no caso de I/O por interrupção a CPU tem de tratar uma interrupção a cada palavra transferida). 2.9) b), d) e g) Tanembaum 1.3) Spooling (Simultaneous Peripheral Operations on line) é o nome dado a uma técnica utilizada para permitir que um programa possa realizar entrada e saída com um dispositivo bastante lento sem sofrer problemas de compatibilidade de velocidade. Por exemplo, ao invés de um programa mandar escrever seus dados diretamente para a uma impressora (dispositivo bastante lento) ele envia seus dados para um disco (dispositivo mais rápido que a impressora). Posteriormente (tendo esse programa que realizou I/O terminado ou não), outro processo se encarregará de pegar os dados do disco e ir transferindo para a impressora, à medida que esta puder tratá-los. Certamente será uma técnica ainda bastante utilizada no futuro, uma vez que a diferença de velocidade entre dispositivos tende a se manter e até a aumentar. 1.7) As diferenças são ocasionadas pelos requisitos mais importantes para cada um desses tipos de Sistemas Operacionais. No caso dos mainframes, throughput é muito importante (são máquinas caras) e possivelmente, tempo de resposta (se houver grande número de usuários acessando via terminais). Já no caso dos computadores pessoais, o mais importante é permitir o uso de múltiplas aplicações e fornecer um ambiente de trabalho de fácil uso (interface amigável). Tais diferenças causam outras: por exemplo, no que diz respeito aos periféricos que devem ser suportados. Os mainframes necessitam de dispositivos com alta capacidade de armazenamento (discos e fitas) e os computadores pessoais precisam dar suporte a periféricos como: mouse, scanner, monitor de vídeo etc.. 1.11) Sim. O modelo cliente-servidor funciona, não importando onde estejam os processos clientes e servidores. Deitel 3.17) O kernel ou nucleus é parte do Sistema Operacional responsável pelas funções fundamentais. Ele é armazenado na memória principal por conter rotinas básicas do sistema que, por serem frequentemente necessárias, devem ser executadas com a maoir rapidez possível. Essas funções fundamentais são, por exemplo: tratamento de interrupções, troca de contexto entre processos, acesso a disco, gerência de memória e processos etc.