Buscar

Capitulo 2 e 16 – Fundamentos de-Sistemas-operacionais-9ª-Edição-LTC

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
Fundamentos de-Sistemas Operacionais 9ª-Edição
Capítulo 2
Qual é a finalidade das chamadas de sistema?
As chamadas de sistema são como portas de entrada para se ter acesso as rotinas. Também fornecem uma interface com os serviços disponibilizados por um sistema operacional.
Quais são as cinco principais atividades de um sistema operacional relacionadas com o gerenciamento de processos?
O sistema operacional é responsável pelas seguintes atividades relacionadas com o gerenciamento de processos:
Executar o escalonamento de processos e threads nas CPUs;
Criar e excluir processos de usuário e do sistema;
Suspender e retomar processos;
Fornecer mecanismos de sincronização de processos;
Fornecer mecanismos de comunicação entre processos.
Quais são as três principais atividades de um sistema operacional relacionadas com o gerenciamento de memória?
O sistema operacional é responsável pelas seguintes atividades relacionadas com o gerenciamento da memória:
Controlar quais partes da memória estão sendo correntemente utilizadas e quem as está utilizando;
Decidir que processos (ou partes de processos) e dados devem ser transferidos para dentro e para fora da memória;
Alocar e desalocar espaço de memória conforme necessário.
Quais são as três principais atividades de um sistema operacional relacionadas com o gerenciamento de memória secundária?
O sistema operacional é responsável pelas seguintes atividades relacionadas com o gerenciamento de disco:
Gerenciar o espaço livre;
Alocar espaço de armazenamento;
Fazer o escalonamento de disco.
Qual é a finalidade do interpretador de comandos? Por que ele é, usualmente, separado do kernel?
Em um nível mais alto, o interpretador de comandos ou shell fornece um mecanismo para o usuário emitir uma solicitação sem escrever um programa. Portanto a principal função do interpretador de comandos é capturar e executar o próximo comando especificado pelo usuário. Ele é separado do Kernel porque o intepretador de comando está sujeito a modificações e o kernel não pode sofrer modificações.
Que chamadas de sistema têm de ser executadas por um interpretador de comandos ou shell para iniciar um novo processo?
Para iniciar um novo processo, o shell executa uma chamada de sistema fork ( ). Em seguida, o programa selecionado é carregado na memória por meio de uma chamada de sistema exec ( ) e é executado. Todo esse procedimento é baseado em sistemas UNIX.
Qual é a finalidade dos programas de sistema?
Os programas de sistema, também conhecidos como utilitários de sistema fornecem um ambiente conveniente para o desenvolvimento e a execução de programas. Alguns deles são, simplesmente, interfaces de usuário para chamadas de sistema. Outros são, consideravelmente, mais complexos.
Qual é a principal vantagem da abordagem em camadas para o projeto de sistemas? Quais as desvantagens da abordagem em camadas?
A principal vantagem da abordagem em camadas é a simplicidade de construção e depuração. As camadas são selecionadas de modo que cada uma use funções (operações) e serviços somente de camadas de nível mais baixo. Essa abordagem simplifica a depuração e a verificação do sistema. A principal desvantagem envolve a definição apropriada das diversas camadas. Já que uma camada pode usar somente camadas de nível mais baixo, é necessário um planejamento cuidadoso. Outro problema das implementações em camadas é que elas tendem a ser menos eficientes do que outras abordagens, pois uma camada irá se comunicar com a outra diretamente seguinte, e assim por diante, possibilitando a modificação de parâmetros a cada camada, necessidade de dados e ainda o acréscimo de overhead à chamada do sistema, levando, contudo, ao consumo maior de tempo.
Liste cinco serviços fornecidos por um sistema operacional e explique como cada um deles é conveniente para os usuários. Em que casos seria impossível que programas de nível de usuário fornecessem esses serviços? Explique sua resposta.
Um conjunto de serviços do sistema operacional fornece funções que são úteis para o usuário. Eles são:
Interface de usuário - O mais comum é o uso de uma interface gráfica de usuário. Nesse caso, a interface é um sistema de janelas com um dispositivo apontador para direcionar o I/O, selecionar a partir de menus e escolher opções e um teclado para entrada de texto.
Execução de programas - O sistema deve ser capaz de carregar um programa na memória e executar esse programa. O programa deve ser capaz de encerrar sua execução, normal ou anormalmente (indicando o erro).
Operações de I/O - Um programa em execução pode requerer I/O, e isso pode envolver um arquivo ou um dispositivo de I/O.
Comunicações - A comunicação pode ocorrer entre processos sendo executados no mesmo computador ou entre processos sendo executados em sistemas de computação diferentes, conectados por uma rede de computadores. As comunicações podem ser implementadas por memória compartilhada ou por troca de mensagens. 
Detecção de erros - O sistema operacional precisa detectar e corrigir erros constantemente. Os erros podem ocorrer no hardware da CPU e da memória, em dispositivos de I/O e no programa do usuário. Para cada tipo de erro, o sistema operacional deve tomar a medida apropriada para assegurar a computação correta e consistente. Em algumas situações, ele não tem escolha, a não ser interromper o sistema.
 
Por que alguns sistemas armazenam o sistema operacional em firmware, enquanto outros o armazenam em disco?
Porque para um disco com sistemas de arquivos pode não está disponível para o dispositivo em questão. Um exemplo seria os telefones celulares. Neste tipo de sistema o SO deve ser armazenado no Firmware.
Como um sistema poderia ser projetado para permitir a escolha de sistemas operacionais a partir dos quais realizar a inicialização? O que o programa bootstrap teria de fazer?
Na maioria dos sistemas de computação, um pequeno bloco de código conhecido como programa bootstrap localiza o kernel, carrega-o na memória principal e inicia sua execução. Alguns sistemas de computação, como os PCs, usam um processo de dois passos em que um carregador bootstrap simples acessa um programa de inicialização mais complexo em disco que, por sua vez, carrega o kernel. Esse sistema de inicialização fica responsável de escolher qual sistema operacional será utilizado.
Os serviços e funções fornecidos por um sistema operacional podem ser divididos em duas categorias principais. Descreva resumidamente as duas categorias e discuta em que elas diferem.
São divididos em Conveniência e Eficiência. Conveniência - Execução de programas, Operações de I/O, sistema de arquivos e detecção de erros. Eficiência - Alocação de recursos, proteção e contabilizações.
Descreva três métodos gerais para passagem de parâmetros ao sistema operacional.
Três métodos gerais para a passagem de parâmetros para o sistema operacional:
Passagem dos parâmetros em registradores;
Parâmetros armazenados em um bloco ou tabela na memória e o endereço correspondente são colocados em um registrador;
Parâmetros são colocados em uma pilha pelo programa e retirados dessa pilha pelo sistema operacional.
Descreva como você poderia obter um perfil estatístico do montante de tempo gasto por um programa executando diferentes seções de seu código. Discuta a importância da obtenção desse perfil estatístico.
Um perfil de tempo requer um recurso de rastreamento ou interrupções periódicas de timer. A cada ocorrência de interrupção do timer, o valor do contador do programa é registrado. Com interrupções suficientemente frequentes do timer, um cenário estatístico do tempo gasto em várias partes do programa pode ser obtido.
Quais são as cinco atividades principais de um sistema operacional relacionadas com o gerenciamento de arquivos?
O sistema operacional é responsável pelas seguintes atividades relacionadas com o gerenciamentode arquivos:
Criar e apagar arquivos;
Criar e apagar diretórios para organizar arquivos;
Suportar primitivos para a manipulação de arquivos e diretórios;
Mapear arquivos em memória secundária;
Fazer backup de arquivos em mídias de armazenamento estáveis (não voláteis), proteção e contabilizações.
Quais são as vantagens e desvantagens do uso da mesma interface de chamadas de sistema para manipular tanto arquivos quanto dispositivos?
A vantagem e de fácil adicionar um novo dispositivo de driver implementando o código específico do hardware para suportar esta interface. Isto beneficia o desenvolvimento do código do programa do usuário, que pode seja escrito para acessar dispositivos e arquivos da mesma maneira. A desvantagem com a mesma interface é que pode ser difícil para capturar a funcionalidade de certos dispositivos no contexto
Seria possível para o usuário desenvolver um novo interpretador de comandos usando a interface de chamadas de sistema fornecida pelo sistema operacional?
Seria possível. O interpretador de comando permite que um usuário crie e gerencie processos e também determinar maneiras pelas quais eles se comunicam. As funcionalidades poderiam ser acessadas por um nível de usuário usando as chamadas do sistema.
Quais são os dois modelos de comunicação entre processos? Quais são as fortalezas e fraquezas das duas abordagens?
Transmissão de mensagens e modelo de memória compartilhada. A troca de mensagens é útil na transmissão de quantidades menores de dados porque não é necessário evitar conflitos. Também é mais fácil de implementar do que a memória compartilhada para a comunicação entre computadores. A memória compartilhada proporciona velocidade máxima e conveniência na comunicação, já que pode ocorrer na velocidade de transferência da memória quando se dá dentro de um computador. No entanto, existem problemas nas áreas de proteção e sincronização entre os processos que compartilham memória.
Por que a separação entre mecanismo e política é desejável? 
A separação entre política e mecanismo é importante para a flexibilidade. As políticas podem mudar para locais diferentes ou com o passar do tempo. Na pior das hipóteses, cada mudança na política demandaria uma mudança no mecanismo subjacente. Um mecanismo genérico, insensível a mudanças na política, seria mais desejável.
Às vezes, é difícil adotar uma abordagem em camadas quando dois componentes do sistema operacional dependem um do outro. Identifique um cenário em que não seja claro o modo de dispor em camadas dois componentes do sistema que requeiram acoplamento estreito de suas funcionalidades.
Normalmente, o espaço em disco usado por algoritmos de memória virtual fica acima do escalonamento da CPU porque pode ter de esperar por I/O e a CPU pode sofrer um escalonamento novamente durante esse intervalo. No entanto, em um sistema grande, o escalonamento da CPU pode ter mais informações sobre todos os processos ativos do que a memória pode armazenar. Portanto, essas informações podem ter que ser permutadas, inseridas na memória e dela extraídas, requerendo que a rotina do driver de disco usado por algoritmos de memória virtual fique abaixo do escalonamento da CPU.
Qual é a principal vantagem da abordagem de microkernel para o projeto de sistemas? Como os programas de usuário e serviços do sistema interagem em uma arquitetura de microkernel? Quais são as desvantagens do uso da abordagem de microkernel?
A principal função do microkernel é fornecer comunicação entre o programa cliente e os diversos serviços que também estão sendo executados no espaço do usuário. A comunicação é fornecida por transmissão de mensagens. Uma das vantagens da abordagem de microkernel é que ela facilita a extensão do sistema operacional. Também fornece mais segurança e confiabilidade, já que a maioria dos serviços é executada como processos de usuário e não do kernel. A principal desvantagem é que desempenho dos microkernels pode ser afetado pelo aumento do overhead de funções de sistema. Outros problemas: implementação difícil e problema de desempenho devido à necessidade de mudança de modo de acesso a cada comunicação entre clientes e servidores
Quais são as vantagens do uso de módulos de kernel carregáveis?
A ideia do projeto é que o kernel forneça serviços nucleares enquanto outros serviços são implementados dinamicamente quando o kernel está em execução. Este módulo lembra um sistema em camadas, porém ele é mais flexível do que um sistema em camadas porque um módulo pode chamar qualquer outro módulo. A abordagem também é semelhante à abordagem de microkernel, já que o módulo principal tem apenas funções nucleares e o conhecimento de como carregar e se comunicar com outros módulos, no entanto, é mais eficiente porque os módulos não precisam invocar a transmissão.
Em que o iOS e o Android são semelhantes? Em que são diferentes?
O Android é semelhante ao iOS por ser uma pilha de softwares em camadas que fornece um rico conjunto de estruturas para o desenvolvimento de aplicativos móveis. A diferença é que enquanto o iOs é projetado para execução em dispositivos móveis da Apple e seu código-fonte é fechado, o Android é executado em várias plataformas móveis e seu código-fonte é aberto, o que explica, em parte, sua rápida
Explique por que programas Java sendo executados em sistemas Android não usam a API Java padrão e a máquina virtual.
Porque a Google projetou uma API Android separada para desenvolvimento em Java. Os arquivos de classes Java são compilados para bytecode Java e, depois, traduzidos para um arquivo executável que é operado na máquina virtual Dalvik.
O sistema operacional experimental Synthesis tem um montador incorporado ao kernel. Para otimizar o desempenho das chamadas de sistema, o kernel monta rotinas dentro do espaço do kernel para minimizar o caminho que a chamada de sistema deve percorrer dentro do kernel. Essa abordagem é a antítese da abordagem em camadas em que o caminho percorrido no kernel é estendido para tornar a construção do sistema operacional mais fácil. Discuta as vantagens e desvantagens da abordagem do Synthesis para o projeto do kernel e a otimização do desempenho do sistema.
O desempenho é impressionante por causa da compilação on-the-fly. Dificuldade de depuração de dentro do kernel por causa da liquidez do código. Também a compilação
é específico do sistema, tornando Synthesis difícil de acessar.
Capítulo 16
Descreva os três tipos de virtualização tradicional.
Virtualização de servidores - virtualização é um processo que, através do compartilhamento de hardware, permite a execução de inúmeros sistemas operacionais em um único equipamento.
Virtualização de aplicativos - O conceito por trás da virtualização de aplicações é relativamente simples. Imagine um aplicativo que é executado, que grava os dados e imprime sem jamais ter sido instalado naquele computador. 
Virtualização de desktops - virtualização de desktops é o mesmo empregado na virtualização de servidores, ou seja, a de possuir a capacidade de executar diversos desktops virtuais em um ou mais servidores físicos.
Descreva os quatro ambientes de execução semelhantes à virtualização e diga por que eles não são a virtualização “real”.
A paravirtualização, uma técnica em que o sistema operacional convidado é modificado para funcionar em cooperação com o VMM visando à otimização de desempenho. A virtualização do ambiente de programação, em que os VMMs não virtualizam o hardware real, mas em vez disso criam um sistema virtual otimizado. Essa técnica é usada pelo Java da Oracle e o Microsoft.NET. Emuladores que permitem que aplicações escritas para um ambiente de hardware sejam executadas em um ambiente de hardware muito diferente, como, por exemplo, um tipo de CPU diferente. O confinamento de aplicações, que não é virtualização de todo, mas fornece recursos semelhantes à virtualização segregando as aplicações do sistema operacional. As Zonas do Solaris da Oracle, as Jaulas do BSD e os WPARs do AIX da IBM “confinam”aplicações, tornando-as mais seguras e gerenciáveis.
Descreva quatro benefícios da virtualização.
A virtualização tem recebido uma atenção especial em infraestrutura de TI para efetuar a consolidação de servidores, reduzir custos de gerenciamento e de energia, prover tolerância a falhas e melhorar a segurança.
Em empresas que precisam de mais de 1 servidor para executar seus sistemas, a virtualização traz redução de custos de aquisição da solução, pois um mesmo servidor pode ser utilizado para mais de um sistema, e mesmo que precise comprar um servidor com mais capacidade de processamento, memória e disco para dar conta de diversos sistemas, o custo extra desses recursos é bem menor comparado a adquirir um novo servidor para cada sistema.
Servidores consomem Energia Elétrica, e o poder de processamento de servidores modernos estão além da necessidade de muitas aplicações. O uso da virtualização permite múltiplas aplicações rodarem no mesmo servidor, isoladas entre si, o que traz redução do espaço utilizado e da energia elétrica para manter o servidor ligado e refrigerar o ambiente.
Com um ambiente virtual é muito simples clonar um conjunto de máquinas virtuais, colocar em um ambiente separado (uma VLAN diferente por exemplo) e executar testes, tanto de atualizações do sistema operacional, quanto atualizações e modificações dos sistemas de produção, como ERP e CRM.
Por que os VMMs não podem implementar a virtualização baseada em interceptação-e-emulação em algumas CPUs? Não havendo a possibilidade de interceptação-e-emulação, que método um VMM pode usar para implementar a virtualização?
Por causa das instruções privilegiadas. No caso de instruções privilegiadas, o tempo torna-se um problema. Todas as instruções não privilegiadas são executadas nativamente no hardware, fornecendo o mesmo desempenho para os convidados que as aplicações nativas. No entanto, instruções privilegiadas geram overhead adicional, fazendo com que o convidado seja executado mais lentamente do que o seria nativamente. Além disso, a CPU está sendo multiprogramada entre muitas máquinas virtuais, o que pode retardar ainda mais as máquinas virtuais de maneiras imprevisíveis.
Que assistência de hardware à virtualização pode ser fornecida por CPUs modernas?
Na família de CPUs Intel x86, a Intel adicionou um novo suporte à virtualização em gerações sucessivas (as instruções VT-x) começando em 2005. Agora, a tradução binária não é mais necessária. Na verdade, todas as principais CPUs de uso geral estão fornecendo níveis estendidos de suporte de hardware para a virtualização.
Por que a migração dinâmica é possível em ambientes virtuais, mas muito menos possível para um sistema operacional nativo?
A virtualização pode melhorar não apenas a utilização de recursos, mas também seu gerenciamento. Alguns VMMs incluem um recurso de migração dinâmica que move um convidado em execução, de um servidor físico para outro, sem interromper sua operação ou conexões de rede ativas. A migração dinâmica é possível em razão das interfaces bem definidas entre convidados e VMMs e o estado limitado que os VMMs mantêm para o convidado.
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