Buscar

Capitulo 1 – Fundamentos de Sistemas Operacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
Departamento de Computação e Eletrônica
Capitulo 1 – Fundamentos de Sistemas Operacionais 9ª-Edição 
Quais são as três finalidades principais de um sistema operacional?
Facilitar a resolução de problemas do usuário e executar programas do usuário. Fazer-se a utilização do computador mais conveniente e eficiente. Atua no gerenciamento dos componentes de I/O e do controle dos aplicativos do usuário.
Enfatizamos a necessidade de o sistema operacional usar eficientemente o hardware do computador. Quando é apropriado que o sistema operacional ignore esse princípio e “desperdice” recursos? Por que tal sistema não é, na verdade, perdulário?
É apropriado quando é necessário potencializar o uso do sistema para o usuário. Isso acontece com frequência e quando necessário em Sistemas Monousuário, porque o sistema rouba alguns ciclos da CPU para na verdade aperfeiçoar a iteração do usuário com o sistema, ou seja, usa um recurso para operar com eficiência.
Qual é a principal dificuldade que um programador deve superar ao escrever um sistema operacional para um ambiente de tempo real?
A garantia que a execução de tarefas serão feitas compatíveis dentro das restrições de tempo fixas de um sistema de tempo real. Por isso o programador precisa de certa exatidão de que as técnicas de escalonamento não permitem que o tempo de resposta ultrapasse a restrição de tempo.
Lembrando-se das diversas definições de sistema operacional, considere se o sistema operacional deve incluir aplicações como navegadores web e programas de e-mail. Argumente tanto o que ele deve quanto o que ele não deve fazer isso e embase suas respostas.
A inclusão destas aplicações no Sistema Operaciol teria vantagens no desempenho destas aplicações que não teria se aplicação fosse executada fora. O problema é que são aplicações e por isso não devem parte do Sistema Operacional, viola a segurança entre outros problemas.
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 defina. 
Qual das instruções a seguir deve ser privilegiada?
Configurar o valor do timer.
Ler o relógio.
Limpar a memória.
Emitir uma instrução de exceção.
Desativar interrupções.
Modificar entradas na tabela de status de dispositivos.
Passar da modalidade de usuário para a de kernel.
Acessar dispositivo de I/O.
Configurar o valor do timer, limpar a memória, desativar interrupções, modificar entradas na tabela de status de dispositivos e acessar dispositivo de I/O.
Alguns computadores antigos protegiam o sistema operacional inserindo-o em uma partição da memória que não podia ser modificada pelo job do usuário ou pelo próprio sistema operacional. Descreva duas dificuldades que você entende que poderiam surgir com tal esquema.
Dados importantes e requeridos pelo Sistema Operacional teriam que ser movido em locais de memoria não protegido, portanto violando a segurança cujos dados ficariam acessíveis a usuários não autorizados.
Algumas CPUs fornecem mais de duas modalidades de operação. Cite dois usos possíveis para essas modalidades múltiplas.
Múltiplas modalidades podem ser usadas para ter uma política de proteção mais sofisticada, assim fazendo distinção entre diferentes modalidades de usuário ou de kernel. Portanto, diferenciar níveis de modalidade do usuário ou diferenciar níveis de modalidade do kernel.
Os timers podem ser usados para computar a hora corrente. Forneça uma breve descrição de como isso pode ser feito.
Um timer pode ser configurado para interromper o computador após um período especificado. Geralmente, um timer variável é implementado por um relógio de marcação fixa e um contador. O sistema operacional posiciona o contador. Cada vez que o relógio marca, o contador é decrementado. Quando o contador atinge zero, ocorre uma interrupção. Quando o timer causa a interrupção, o controle é transferido automaticamente para o sistema operacional que pode tratar a interrupção como um erro fatal ou dar mais tempo ao programa.
 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?
É oferecido pelos caches um buffer para resolver o problema de transferência quando dois ou mais componente precisarem trocar dados. Também visa obter uma velocidade de acesso à memória próxima da velocidade de memórias mais rápidas, e ao mesmo tempo disponibilizar no sistema uma memória de grande capacidade, a um custo similar de memórias de semicondutores mais baratas. Os dados no cache precisam ser mantidos estáveis com os dados nos componentes. Quando houver mudanças no valor dos dados o cache também precisará ser atualizado, esse é um grande problema em sistemas com multiprocessadores e conhecido por coerência de cache. O armazenamento que tende a ser mais rápido tende a ser mais caro, pois isso um componente poderá ser removido por um cache que tenha tamanhos iguais se ambos tiverem as capacidades iguais para salvar o estado e se o cache for alcançável.
Qual a diferença entre os modelos cliente-servidor e entre pares dos sistemas distribuídos?
No modelo cliente-servidor, necessita-se de um servidor central que disponibilizar aos clientes todos os recursos a ele requisitados, portanto um modelo centralizado. Outras características são: maior segurança e possui um custo elevado. Já entre pares a rede é caracterizada pela descentralização das funções na rede, onde cada nó realiza tanto funções de servidor quanto de cliente. Tem um baixo custo, é mais simples, porém é menos seguro.
Em um ambiente de multiprogramação e tempo compartilhado, vários usuários compartilham o sistema simultaneamente. Essa situação pode resultar em diversos problemas de segurança.
Cite dois desses problemas.
Utilização e acessos impróprios a dados de outros usuários e/ou aplicações.
 Concorrência na utilização dos recursos.
Podemos assegurar o mesmo nível de segurança em uma máquina de tempo compartilhado como em uma máquina dedicada? Explique sua resposta.
Infelizmente não. Em uma maquina dedicada, o risco de violação de segurança é zero. Já na maquina de tempo compartilhado, podemos realizar procedimentos para tentar haver garantias de seguranças, porém não chega à zero.
A questão da utilização de recursos assume formas diferentes em diferentes tipos de sistemas operacionais. Liste que recursos devem ser gerenciados cuidadosamente nas configurações a seguir:
Sistemas mainframe ou de minicomputador
Gerenciamento de Processos, Gerenciamento de Memória, Gerenciamento de Arquivos e Discos, Gerenciamento de Dispositivos de Entrada e Saída.
Estações de trabalho conectadas a servidores
Gerenciamento de Redes, Gerenciamento de Segurança, Gerenciamento de Processos.
Computadores móveis
Gerenciamento de energia elétrica, Gerenciamento de Memória, Gerenciamento de Segurança.
Em que circunstâncias seriam melhor para o usuário usar um sistema de tempo compartilhado em vez de um PC ou uma estação de trabalho monousuária?
Quando a tarefa for grande, o hardware for rápido e com poucos usuários. O desempenhototal do sistema pode ser utilizado para ajudar no problema do usuário e o problema pode ser solucionado mais rapidamente do que em um computador pessoal. Uma estação de trabalho monousuário seria melhor quando a tarefa é pequena para ser executada de forma razoável e quando o desempenho é suficiente para executar o programa do usuário.
Descreva as diferenças entre multiprocessamento simétrico e assimétrico. Cite três vantagens e uma desvantagem dos sistemas multiprocessadores.
Multiprocessamento assimétrico – Uma tarefa específica é atribuída a cada processador. O processador mestre escalona e aloca trabalho para os processadores escravos.
Multiprocessamento simétrico – Cada processador executa uma cópia idêntica do sistema operacional, por isso os processos podem ser executados ao mesmo tempo sem queda do desempenho.
Vantagens – Taxa de transferência, economia, maior confiabilidade (degradação controlada e sistemas tolerante a falhas de software)
Desvantagem – Sistemas fortemente acoplados (os processadores compartilham memória e um relógio).
Em que os sistemas agrupados (clusters) diferem dos sistemas multiprocessadores? O que é necessário para que duas máquinas pertencentes a um cluster cooperem para fornecer um serviço de alta disponibilidade?
Esses sistemas diferem dos sistemas multiprocessadores por serem compostos de dois ou mais sistemas individuais acoplados. Geralmente, a alta disponibilidade é obtida pela adição de um nível de redundância ao sistema. Uma camada de software de cluster opera sobre os nós do cluster. Cada nó pode monitorar um ou mais dos outros nós. Se a máquina monitorada falhar, a máquina de monitoramento pode apropriar-se da sua memória e reiniciar as aplicações que estavam sendo executadas na máquina que falhou. Os usuários e clientes das aplicações percebem somente uma breve interrupção do serviço.
Considere um cluster de computadores composto por dois nós executando um banco de dados. Descreva duas maneiras pelas quais o software de cluster pode gerenciar o acesso aos dados em disco. Discuta as vantagens e desvantagens de cada uma.
No cluster assimétrico, uma das máquinas permanece em modalidade de alerta máximo, enquanto a outra executa as aplicações. A máquina hospedeira em alerta nada faz além de monitorar o servidor ativo. Se esse servidor falhar, o hospedeiro em alerta torna-se o servidor ativo. 
No cluster simétrico, dois ou mais hospedeiro executam aplicações e se monitoram uns aos outros. É claro que essa estrutura é mais eficiente, já que usa todo o hardware disponível. No entanto, isso requer que mais de uma aplicação esteja disponível para execução.
Em que os computadores em rede são diferentes dos computadores pessoais tradicionais? Descreva alguns cenários de uso em que é vantajoso usar computadores em rede.
Um sistema operacional de rede é um sistema operacional que fornece recursos como o compartilhamento de arquivos pela rede e um esquema de comunicação que permite que diferentes processos em diferentes computadores troquem mensagens. Já os computadores pessoais tradicionais não permite que diferentes processos de diferentes computadores se comuniquem. Serviços podem ser fornecidos pelo modelo cliente-servidor ou do modelo entre pares. Exemplos: Compartilhamento de arquivos, chamadas de voz e vídeos, entre outros.
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 ocorrência de um evento. A diferença é que a interrupção manda mensagem via hardware para o Sistema Operacional. A exceção envia um programa para o Sistema Operacional. As exceções podem ser geradas intencionalmente com a finalidade de alertar sobre algum erro.
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.
Como a CPU interage com o dispositivo para coordenar a transferência?
Após estabelecer os buffers, ponteiros e contadores para o dispositivo de I/O, o controlador do dispositivo transfere um bloco inteiro de dados diretamente da memória para o seu próprio buffer ou a partir dele para a memória, sem intervenção da CPU.
Como a CPU sabe quando as operações da memória foram concluídas?
É gerada uma interrupção por bloco para informar ao driver do dispositivo que a operação foi concluída.
A CPU pode executar outros programas enquanto o controlador de 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á executando essas operações, a CPU está disponível para cumprir outras tarefas.
Alguns sistemas de computação não fornecem uma modalidade de operação privilegiada de hardware. É possível construir um sistema operacional seguro para esses sistemas de computação? Dê argumentos para defender e para refutar essa possibilidade.
Os dois modos de operação (modo usuário e supervisor) fornecem os meios para a proteção do sistema operacional contra usuários errantes e, portanto fornece a proteção desses contra eles mesmos. Sem as duas modalidades o Sistema Operacional não teria nenhum tipo de segurança.
Muitos sistemas SMP têm diferentes níveis de caches; um nível é local para cada núcleo de processamento, e outro nível é compartilhado entre todos os núcleos de processamento. Por que os sistemas de cache são projetados dessa forma?
Os sistemas de cache são projetados dessa forma para diminuir problemas de coerências de cache. Melhora a comunicação entre as unidades, possibilitada otimizar a carga de trabalho, movendo as tarefas entre os processadores.
Considere um sistema SMP semelhante ao mostrado na Figura 1.6. Ilustre com um exemplo como os dados que residem na memória poderiam ter um valor diferente em cada um dos caches locais.
Em uma estrutura de armazenamento hierárquica, os mesmos dados podem aparecer em diferentes níveis do sistema de armazenamento. Por exemplo, suponha que um inteiro A que tenha que ser incrementado de 1 esteja localizado no memória. Essa operação é seguida pela cópia de A em uma cache para realizar a atualização, porém antes de escrever na memória o novo valor, esse inteiro foi utilizado com o valor desatualizado por outra cache local. Com isso aconteceria um problema.
Discuta, com exemplos, como o problema de manter a coerência dos dados armazenados em cache se manifesta nos ambientes de processamento a seguir:
Sistemas uniprocessadores
Sistemas uniprocessadores têm apenas um processador, ou seja, não há problemas de manter coerência de dados porque só terá um cache. 
Sistemas multiprocessadores
Neste tipo de sistema há vários níveis de cache, com isso, surgem problemas de inconsistência de dados que incluem o compartilhamento de dados que podem ser modificados, processos de migração, entre outros. Portanto para resolver as inconsistências de dados é que após as atualizações forem realizadas, as demais caches precisam ser invalidados ou atualizados.
Sistemas distribuídos
Nesse ambiente, várias cópias do mesmo arquivo podem ser mantidas em diferentes computadores. Já que as diversas réplicas podem ser acessadas e atualizadas concorrentemente, alguns sistemas distribuídos asseguram que, quando uma réplica é atualizada em um local, todas as outras réplicas são atualizadas assim que possível.
Descreva um mecanismo que garanta a proteção da memória impedindo que um programa modifique a memória associada a outros programas.
Existem mecanismos asseguram que arquivos, segmentos de memória e outros recursos possam ser operados apenas pelos processos que receberam autorização apropriada do sistema operacional. Por exemplo, o hardware de endereçamento da memória assegura que um processo só possa ser executado dentro de seu próprio espaço de endereçamento.
Que configuração de rede — LAN ou WAN — atenderiamelhor os ambientes a seguir?
Um diretório de estudantes de um campus
LAN
Várias regiões do campus de um sistema universitário de abrangência estadual
WAN
Uma vizinhança
WAN
Descreva alguns dos desafios inerentes ao projeto de sistemas operacionais para dispositivos móveis em comparação com o projeto de sistemas operacionais para PCs tradicionais.
Acompanhar a rápida evolução das tecnologias móveis, que por sua vez, demandam uma constante manutenção dos aplicativos, para garantir sua eficiência e compatibilidade com os novos padrões de design, atualizações do sistema operacional, adição de novos recursos de hardware e novos lançamentos de smartphones. Gerenciamento de energia também é um grande desafio.
Cite vantagens dos sistemas entre pares sobre os sistemas cliente-servidor?
Permite que os papéis e responsabilidades de um sistema de computação possam ser distribuídos entre vários computadores independentes que são conhecidos por si só através de uma rede criando maior facilidade de manutenção. Outra vantagem é que todos os dados são armazenados nos servidores, que geralmente possuem controles de segurança muito maiores do que a maioria dos clientes.
Descreva algumas aplicações distribuídas que seriam apropriadas para um sistema entre pares.
Vários serviços de compartilhamento de arquivos. O Skype é outro exemplo de computação entre pares. Ele permite que os clientes façam chamadas de voz e de vídeo e enviem mensagens de texto pela Internet usando uma tecnologia conhecida como voz sobre IP
Identifique diversas vantagens e desvantagens dos sistemas operacionais de código-fonte aberto. Inclua os tipos de pessoas que considerariam cada aspecto uma vantagem ou uma desvantagem.
Há muitos benefícios nos sistemas operacionais de código-fonte aberto, inclusive uma comunidade de programadores interessados que contribuem para o desenvolvimento do código, ajudando a depurá-lo, analisá-lo, fornecendo suporte e sugerindo alterações. Certamente o código-fonte aberto tem bugs, mas seus defensores argumentam que os bugs tendem a ser encontrados e corrigidos mais rapidamente, em razão do número de pessoas que usam e visualizam o código. Desvantagens seria que diminuição de faturamento para as empresas que vendem software por isso empresa que faturam com a venda de seus programas, hesitam, com frequência, em abrir seu código-fonte.
Centro Universitário Norte do Espírito Santo
Rodovia BR 101 Norte, Km 60, Bairro Litorâneo, CEP.: 29.932-540, São Mateus - ES
Tel.: +55 (27) 3312.1511, Fax.: +55 (27) 3312.1510, Sítio Eletrônico : http://www.ceunes.ufes.br

Outros materiais