Universidade Federal de Ouro Preto
Departamento de Computação e Sistemas - DECSI
Sistemas Operacionais
Estruturas de Sistemas Operacionais
Ref.: Capítulo 3
Vicente Amorim
[email protected]
www.decom.ufop.br/vicente
Sumário
* Introdução
* Componentes de um SO
* Serviços do sistema
* Chamadas de Sistema
* Diferentes Estruturas de SO
* Máquinas Virtuais e Virtualização
www.decom.ufop.br/vicente
Introdução
www.decom.ufop.br/vicente
Introdução
* Visão Geral
- A grosso modo: Um SO provê um ambiente no qual outros
programas/sistemas podem ser executados.
- Antes da criação de um SO, o objetivo do mesmo deve ser
bem definido.
- Diferentes pontos de vista:
✓ Serviços providos pelo SO;
✓ Interface que o SO provê para com os usuários finais e
programadores; e
✓ Componentes de um SO e suas interconexões.
www.decom.ufop.br/vicente
Componentes de um SO
www.decom.ufop.br/vicente
Componentes de um SO
* Componentes usuais de um SO
- Gerenciador de processos;
- Gerenciador de memória principal;
- Gerenciador de arquivos;
- Gerenciador do sistema de E/S;
- Gerenciador de memória secundária;
- Sistemas de rede;
- Sistemas de proteção;
- Sistema interpretador de comandos.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de processos
- Processo -> Programa em execução
✓ Compiladores, editores de texto, tarefas do sistema, etc.
- Necessidade de recursos:
✓ CPU, memória, arquivos, dispositivos de E/S.
✓ Alocação no início ou durante execução dos mesmos.
✓ Recursos são a fonte principal de “alimentação” dos
processos.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de processos
- Necessidade de recursos (cont.):
✓ Ex.: Processo que tem como função exibir o status de um
arquivo na tela:
‣ Inicialmente, ao processo é dado o nome do arquivo desejado.
‣ O mesmo irá executar instruções apropriadas para obter as
informações e mostrá-las na tela.
‣ Quando o processo finaliza, o SO “toma de volta” todos os recursos
cedidos e reutilizáveis.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de processos
- Um programa por si só não é um processo!!! (estado estático)
- Um programa é uma entidade que possui um PC (program
counter) e executa sequencialmente instruções. (estado dinâmico)
- Concorrência: Processos de usuário vs. Processos de sistema.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de processos
- Um processo é a unidade de trabalho do SO.
- Em relação aos processos, é função do SO controlar:
✓ Criação e destruição de processos.
✓ Suspensão e retomada de execução.
✓ Garantia de mecanismos para sincronização e comunicação
entre processos.
✓ Mecanismos para manipulação de deadlock.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de memória principal
- A memória é um vetor de bytes endereçáveis.
- Pode ser enxergada como um depósito de dados rapidamente
acessíveis, compartilhados por dispositivos e CPU.
- Dispositivo de armazenamento volátil.
- Responsabilidades do SO sobre a memória principal:
✓ Controle das partes da mem. que estão utilizadas e por quem.
✓ Decidir quais processos ganham acesso.
✓ Alocar e liberar espaço sob demanda.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de arquivos
- Computadores podem armazenar informações em diferentes
tipos de mídias físicas: Fitas magnéticas, discos magnéticos, discos
óticos, etc.
- Cada tipo de dispositivo, diferentes propriedades:Velocidade,
capacidade, taxa de transferência, métodos de acesso (sequencial
ou randômico), etc.
- SO abstrai as propriedades físicas dos dispositivos de
armazenamento para prover uma unidade lógica de
armazenamento: Arquivo.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de arquivos
- Arquivo: Coleção de dados relacionados
✓ Programas (fontes, objetos e executáveis, dados).
- Responsabilidades do SO sobre arquivos:
✓ Criação e remoção de arquivos.
✓ Criação e remoção de diretórios (índices).
✓ Suporte a primitivas de acesso e manipulação.
✓ Mapeamento para o armazenamento secundário.
✓ Cópias de segurança (backup).
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador do sistema de E/S
- Tarefa do SO: Esconder do usuário as peculiaridades de cada
dispositivo de hardware.
- E/S: Relacionamento com dispositivos periféricos.
- Responsabilidades do SO relacionadas a E/S:
✓ Controle dos recursos de buffers/caches;
✓ Definição de uma interface geral e comum para acionamento
dos dispositivos.
✓ Implementação dos acionadores de dispositivos específicos
(device drivers).
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de memória secundária
- Armazenamento secundário: Sistema de armazenamento de
dados não volátil (visa complementar a memória principal).
- A maioria dos sistemas modernos usa discos como o principal
meio de armazenamento.
- Responsabilidades do SO em relação ao armazenamento
secundário:
✓ Controle de espaço livre;
✓ Alocação do armazenamento;
✓ Mapeamento de arquivos em discos; e
✓ Escalonamento de discos.
www.decom.ufop.br/vicente
Componentes de um SO
* Gerenciador de memória secundária
- Eficiência: Alta frequência de acesso vs. velocidade do
dispositivo.
- Toda velocidade do computador pode ser limitada devido ao
tempo de acesso ao disco.
www.decom.ufop.br/vicente
Componentes de um SO
* Sistemas de rede
- Em um sistema distribuído, processadores têm cada um seu
clock e sua memória particulares.
- A forma de conexão entre eles é através de uma rede de
comunicação.
- Responsabilidades do SO em relação à rede:
✓ Controlar o acesso à rede pelos processos;
✓ Garantir a disponibilidade de protocolos mais comuns;
✓ Oferecer recursos eficientes
- Com o advento da wwweb: FTP, NFS, HTTP, HTTPS, etc.
www.decom.ufop.br/vicente
Componentes de um SO
* Sistemas de proteção
- Usualmente, um SO garante acesso a diversos programas,
processos e usuários:
✓ É essencial que tais acessos sejam controlados e protegidos
contra abusos (propositais ou acidentais).
- Determinados arquivos, segmentos de memória, CPU e outros
recursos podem ser acessados somente por entidades
autorizadas.
- Ex.: Mecanismo de verificação de endereçamento de memória
garante que processos utilizem somente regiões de memória a
eles destinadas.
www.decom.ufop.br/vicente
Componentes de um SO
* Sistemas de proteção
- Proteção: Qualquer mecanismo para controle de acesso de
programas, processos ou usuários em relação aos recursos.
- Responsabilidades do SO em relação a proteção:
✓ Diferenciação de acessos autorizados ou não;
✓ Definição dos controles a serem impostos;
✓ Criação de formas de fazer valer as regras.
www.decom.ufop.br/vicente
Componentes de um SO
* Sistema interpretador de comandos
- O SO deve prover formas de comunicação com os usuários
para receber deles as instruções sobre o que fazer.
- Um dos mais importantes programas do sistema.
- Interpretadores de comandos podem tomar formas variadas e
diferentes nomes:
✓ Interpretação de linha de comando;
✓ Shell (Unix / Linux);
✓ Sistemas gerenciadores de janelas (KDE, gnome, X11, etc).
www.decom.ufop.br/vicente
Componentes de um SO
* Serviços do Sistema Operacional
- Execução de programas:
✓ Carregamento do programa em memória e posterior execução
do mesmo.
✓ Programa precisa ainda terminar sua execução, de forma
normal ou anormal.
- Controle de operações de E/S:
✓ Um prog. de usuário pode requerer operações de E/S.
✓ Para cada dispositivo, funções especiais podem ser providas.
✓ Usuários não podem controlar dispositivos de E/S diretamente.
www.decom.ufop.br/vicente
Componentes de um SO
* Serviços do Sistema Operacional
- Manipulação de arquivos e sist. de arquivos:
✓ Programas precisam ler e escrever em sistemas de arquivos.
✓ Criação/remoção de arquivos através dos caminhos (paths) para
os mesmos.
- Comunicação (local ou via rede):
✓ Processos podem trocar informações entre si:
‣ Processos executando em um mesmo computador: Memória
compartilhada, ...
‣ Processos executando em máquinas fisicamente distantes: Envio/
recebimento de mensagens.
www.decom.ufop.br/vicente
Componentes de um SO
* Serviços do Sistema Operacional
- Detecção de erros:
✓ SO precisa estar ciente do acontecimento de erros: Sistemas
críticos.
✓ Possíveis ocorrências em: CPU, memórias, dispositivos de E/S e
programas de usuário.
✓ Para cada tipo de erro, um tratamento diferente.
www.decom.ufop.br/vicente
Componentes de um SO
* Serviços Adicionais do Sistema Operacional
- Determinados serviços não tem foco direto no usuário, mas
garantem a operação eficiente.
- Alocação de recursos:
✓ Múltiplos usuários: Alguém precisa ter prioridade na utilização
de recursos.
- Contabilidade:
✓ Quais usuários fazem uso de quais/quantos recursos do sistema.
✓ Estatísticas podem ser utilizadas até para cobranças financeiras
de serviços.
www.decom.ufop.br/vicente
Componentes de um SO
* Serviços Adicionais do Sistema Operacional
- Proteção:
✓ Todos os acessos aos recursos do sistema devem ser
controlados.
✓ “Quem” acessou “o quê”? Autenticação!!
✓ Limitação de quantidade de uso de determinados recursos.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Definem a interface entre programas em nível de usuário e o
SO.
- Implementam o chaveamento de níveis de proteção discutidos
anteriormente.
- Disponíveis como instruções em linguagens de máquina.
- Linguagens de alto nível costumam oferecer bibliotecas que
encapsulam tais chamadas.
- Ex.: Cópia do conteúdo de um arquivo para outro local.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Por se tratar de uma mudança de nível de proteção, a
passagem de dados é controlada.
- Três métodos são comumente utilizados para se passar
parâmetros entre processos de usuário e SO:
✓ Passagens através de registradores da CPU.
✓ Armazenamento em um local da memória cujo endereço é
passado em um registrador da CPU.
✓ Armazenamento na pilha (stack) do programa, de onde o SO
extrai os dados.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Tipos de chamadas de sistema:
✓ Controle de processos;
✓ Gerência de arquivos;
✓ Gerência de dispositivos;
✓ Manutenção de informações do sistema;
✓ Comunicação.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Controle de processos:
✓ Programa pode terminar sua execução de forma normal ou
anormal.
✓ Se o programa termina de forma anormal (system call ou erro),
uma exceção é gerada e um dump de memória é geralmente feito
em disco.
✓ Após finalização, controle é transferido para o interpretador de
comandos que irá executar o próximo trabalho da fila.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Controle de processos:
✓ Importante: Um processo pode requerer a execução de outro
processo.
✓ Quando o segundo programa terminar, para onde deve ser
retornado o controle do mesmo?
‣ Se o controle retorna para o programa existente: Programa à parte
foi executado com sucesso.
‣ Se ambos continuam sua execução de forma concorrente, então foi
criado um novo processo.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Controle de processos:
✓ Finalização de um processo:
‣ Espera por tempo; (wait)
‣ Espera por evento. (wait/signal)
✓ Exemplo: Controle de processos no MS-DOS
‣ É um sistema mono-tarefa.
‣ Interpretador de comandos é invocado quando o SO é carregado.
‣ Executa um programa e não cria um novo processo à partir do mesmo.
‣ Através de um mecanismo de redirecionamento de interrupções, o
mesmo emula a execução concorrente (TSR - Terminate and stay resident).
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Controle de processos no MS-DOS:
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Controle de processos:
✓ Exemplo: Controle de processos no FreeBSD (unix-like)
‣ É um sistema multitarefa.
‣ Quando usuário é autenticado, o interpretador de tarefas escolhido
pelo usuário é automaticamente iniciado (ex.: shell).
‣ Interpretador de comandos continua rodando enquanto outro
programa é executado (fork / exec).
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Controle de processos: Unix executando diversos programas
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Gerenciamento de Arquivos:
✓ Suporte a criação e deleção de arquivos.
✓ Arquivos normalmente tem nome e uma série de atributos.
✓ Para que possa ocorrer a leitura/escrita/reposicionamento,
arquivos precisam ser inicialmente abertos.
✓ Arquivos precisam ser fechados ao fim do seu uso.
✓ Mesmos conceitos se aplicam aos diretórios.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Gerenciamento de Dispositivos:
✓ Um programa para executar pode precisar de recursos extras
(memória, acesso a arquivos, etc).
✓ Se os recursos estão disponíveis o programa poderá utilizá-los
de imediato, caso contrário, será necessário aguardá-los.
✓ Arquivos podem ser enxergados pelo SO como sendo
dispositivos virtuais.
✓ Em sistemas multi-usuários, a requisição pelo recurso se faz
necessária.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Manutenção da Informação:
✓ Algumas chamadas de sistema servem somente para
transferência de informação entre SO/progs. de usuário. (date /
time, etc).
✓ SOs mantém informação sobre cada processo em execução.
✓ System calls para alterar e obter os valores correntes dos
atributos dos processos.
✓ Em Unix: /proc.
www.decom.ufop.br/vicente
Componentes de um SO
* Chamadas de Sistema (system calls)
- Comunicação:
✓ Envio de mensagens.
✓ Compartilhamento de
memória.
Msg'Passing'
www.decom.ufop.br/vicente
Shared'Memory'
Componentes de um SO
* Programas do Sistema (comandos)
- Um nível de abstração/funcionalidade adicional.
- Acabam por contribuir na definição do SO na visão dos
usuários:
✓ Manipulação de arquivos: Criação, cópia, deleção, etc.
✓ Infos. de status do sistema: Espaço disponível, data, hora...
✓ Modificação de arquivos:Vi, emacs, edit, ...
✓ Suporte a linguagens de programação: Compiladores, assemblers,
linkers, ...
www.decom.ufop.br/vicente
Componentes de um SO
* Programas do Sistema (comandos)
- Acabam por contribuir na definição do SO na visão dos
usuários: (cont.)
✓ Controle e execução de programas: Carregadores do programa
em memória (loaders), link-editores, absolute loaders, ...
✓ Comunicação: Conexões virtuais entre os processos, usuários e
outros sistemas computacionais -> Envio/recepção de mensagens,
processamento de páginas web, etc...
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Introdução
- Sistemas operacionais estão entre os sistemas de software mais
complexos existentes atualmente.
- No passado, eram escritos como um único programa, em
linguagem de máquina.
- O aumento da complexidade levou à busca por outras formas
de organização interna:
✓ Camadas;
✓ Módulos;
✓ Micro-kernel;
✓ Máquinas virtuais.
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura do MS-DOS
- Escrito para microprocessadores simples, com poucos
recursos de proteção:
✓ Máximo de funcionalidade no menor espaço.
✓ Não é divido em camadas ou módulos.
✓ Apesar de possuir alguma estrutura, interfaces e níveis de
funcionalidade não são bem definidos nem isolados: Inclusive por
limitações dos computadores nos quais executava).
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura do MS-DOS
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura do Unix
- Unix original foi talvez o primeiro SO a ser escrito em uma
linguagem de “alto nível”, C.
- Originalmente limitado pelo HW da época, com o tempo foi
crescendo, gerando diferentes versões.
- O Linux é derivado conceitualmente do Unix, apesar de ter
sido desenvolvido separadamente.
- Originalmente, duas partes principais apenas:
✓ O núcleo do sistema, ou kernel; e
✓ Programas do sistema: shells, editores, etc.
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura do Unix
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Enfoque em camadas
- O SO é dividido em níveis, cada um construído sobre os níveis
inferiores
✓ O nível 0 é o hardware;
✓ O nível mais alto é a interface com o usuário.
- Com a modularidade, cada nível se torna mais fácil de
construir, usando as funções dos níveis inferiores.
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Enfoque em camadas
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura em camadas do Linux
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura em camadas do Android
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura em micro-kernel
- Sistemas com muitas funcionalidades dentro do kernel podem
se tornar muito complexos.
- Uma opção é manter o menor kernel possível e mover todo o
resto para o espaço de usuário.
- Tarefas são executadas por processos que trocam mensagens:
✓ Menos código em modo protegido (kernel);
✓ Mais fácil estender (novos processos);
✓ Mais fácil de portar para outras arquiteturas.
www.decom.ufop.br/vicente
Diferentes Estruturas de SO
* Estrutura em micro-kernel do MAC OS-X
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Virtualização está na moda
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Por que utilizar?
✓ Melhor aproveitamento da estrutura existente.
✓ Parque de máquinas menor: Necessidade de menor custo de
manutenção.
✓ Gerenciamento centralizado.
✓ Implementação mais rápida: Infra-estrutura já está instalada.
✓ Uso de sistemas legados: Manter sistemas antigos funcionando
sem deixar de atualizar-se.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Por que utilizar?
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Extensão do enfoque em camadas:
✓ SO pode ser colocado sobre outra camada que o separa do hw.
- Uma máquina virtual é uma abstração de sw e hw fornecida
para um SO como se fosse a máquina real onde ele espera
executar.
- Diversos SOs podem executar de forma protegida uns dos
outros.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- O nível inferior (que cria as máquinas virtuais) oferece uma
interface equivalente ao hw.
- Os recursos do computador real são compartilhados entre as
máquinas virtuais.
✓ Escalonamento da CPU pode dar a impressão que cada SO tem
seu próprio processador.
✓ Recursos restritos podem ser virtualizados de forma que cada
SO veja um recurso só seu.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* O que é um ambiente virtual?
Ambiente Tradicional!
Ambiente Virtual!
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Quando a virtualização era novidade...
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
1972!
www.decom.ufop.br/vicente
Isolation!
Máquinas Virtuais e Virtualização
Monitor para !
gerenciar !
o ambiente!
O enfoque era !
Time sharing!
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Conceito originalmente utilizado em mainframes IBM (VM)
✓ Cada usuário tinha a visão que seu terminal se comportava
como um computador individual.
✓ Na verdade, terminais estavam ligados a um grande mainframe
que executava as máquinas virtuais.
✓ Impressoras e leitoras de cartões eram virtualmente
conectadas a cada máquina virtual.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Máquinas virtuais são completamente isoladas do hw real e das
demais máquinas.
- A camada de virtualização adiciona overheads.
- Não é possível compartilhar recursos de forma flexível - cada
máquina tem sua cota de recursos.
- Útil para pesquisa e desenvolvimento de SOs: não exige um
hardware isolado para desenvolvimento e testes.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Implementação é difícil devido ao esforço necessário para isolar
e duplicar o hardware.
- Existem diversos tipos de virtualização dependendo de como a
abstração é criada:
✓ Interpretadores: Programas (sw) que processam cada instrução
que seria entregue ao hw.
✓ Paravirtualização: O SO que executa na máquina virtual sabe da
virtualização e colabora com o nível inferior de virtualização
(hipervisor).
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
✓ Panaevirtualização: O núcleo do SO é virtualizado (várias
máquinas virtuais com um único SO).
✓ Virtualização com apoio do hardware: Processadores mais novos
oferecem proteção para máquinas virtuais.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
Virtualização Pura!
Paravirtualização!
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Virtualização pura:
✓ Não requer alterações no SO, mas é mais lenta.
✓ Ambientes mais conhecidos:
‣ VMWare,Virtual PC,VirtualBox e QEMU.
- Paravirtualização:
✓ Requer mudanças no SO, mas não nas aplicações.
✓ Problema resolvido com criação de hardware especial.
‣ Conjunto de instruções próprio para ser aplicado neste ambiente.
‣ Intel (Vanderpool ou IVT) e AMD (Pacífica).
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Paravirtualização: (cont.)
✓ Ambientes mais conhecidos
‣ Xen (livre e de código aberto)
‣ VMWare ESX Server
‣ Denali (apenas uma aplicação por máquina virtual).
- Outros tipos de virtualização
✓ VServers (utilizados em grids).
✓ KVM (kernel-based) incluído no kernel 2.6.20 do Linux.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Para que serve um ambiente virtual?
✓ Recursos logísticos
‣ Backups, checkpoints, migração de serviços, etc.
✓ Replicação de hardware
‣ Ex.: Honeyfarms: Uso de máquinas virtuais na detecção de novos
vírus.
✓ Ambiente de testes e desenvolvimento
‣ Testes em diferentes ambientes e cenários (hardware e software).
✓ Portabilidade de Hardware
‣ Solução para uso de aplicações de outras plataformas.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Para que serve um ambiente virtual?
✓ Consolidação de servidores
‣ Migração de vários servidores para uma única plataforma.
‣ Custo de manutenção/gerenciamento reduzidos.
‣ Espaço físico e consumo energético reduzidos.
‣ Melhor aproveitamento de hardware subutilizado.
‣ Redução no número de licenças de software.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Para que serve um ambiente virtual?
✓ Consolidação de
servidores
‣ Melhor
aproveitamento de
recursos: Pesquisa da HP
revela que 50% dos
servidores possuem
utilização <= 10% e 80%
<= 25%.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Para que serve um ambiente virtual?
✓ Virtual datacenters
‣ Terceirização de
serviços em ambientes
virtuais: Utility computing.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Para que serve um ambiente virtual?
✓ Virtual datacenters
‣ Ambiente flexível e
auto-adaptativo.
‣ Política de punião e
recompensa via SLA
(Service Level Agreement).
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Desvantagens
✓ Sobrecarga afeta todas as máquinas virtuais: Quantidade de
máquinas virtuais que um computador pode suportar não é
ilimitada. Necessário fazer um balanceamento.
✓ Segurança: Se houver uma vulnerabilidade na VMM, por
exemplo, todas as máquinas virtuais podem vir a ser afetadas.
✓ Portabilidade: Dependendo da solução em uso, a migração de
uma máquina virtual pode não ser uma tarefa fácil. Ex.: Sistemas
dependentes do conjunto de instruções.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquinas Virtuais
- Desvantagens
✓ Contingência: Em aplicações críticas, é importante ter um
computador para atuar no lugar da máquina principal em caso de
falhas. Se máquina principal pára, todas as virtuais também irão
parar.
✓ Desempenho: Podem haver aplicações onde o desempenho é
degradado com o uso de arquiteturas virtuais.
✓ Gastos: Gastos não previstos em manutenção podem ocorrer.
Além de mão-de-obra, treinamento, etc.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquina Virtual Java
- Máquina virtual do tipo interpretado.
- Programas Java são compilados para instruções (bytecodes) de
uma máquina virtual Java (JVM).
- Um interpretador que emula a JVM em cada hw precisa ser
desenvolvido e inclui um carregador e um verificador de classes
compiladas.
- Compiladores JIT (Just In Time): Transformam bytecodes em
instruções da máquina real.
www.decom.ufop.br/vicente
Máquinas Virtuais e Virtualização
* Máquina Virtual Java
www.decom.ufop.br/vicente
Exercícios
1) Descreva o que é um processo e qual o papel do mesmo no sistema
operacional.
2) Diferencie memória primária de memória secundária. Quais as
principais características e papéis de cada uma?
3) O que são e para que servem as chamadas de sistema (System Calls)?
4) Apresente as áreas de um SO nas quais atuam as chamadas de sistema.
5) Qual o principal papel desenvolvido pelo gerenciador do sistema de
arquivos?
6) Apresente com suas palavras as principais vantagens/desvantagens da
virtualização.
www.decom.ufop.br/vicente
Exercícios
7) Cite exemplos de ambientes virtuais presentes no mercado
atualmente.
www.decom.ufop.br/vicente
Download

Aula3 - Estruturas de Sistemas Operacionais - Decom