mc714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • ex.:...

87
Prof. Luiz Fernando Bittencourt IC - UNICAMP MC714 Sistemas Distribuídos 2° semestre, 2013

Upload: trinhhanh

Post on 22-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MC714 Sistemas Distribuídos 2° semestre, 2013

Page 2: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Autogerenciamento em Sistemas Distribuídos

Page 3: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Autogerenciamento em SDs • Para suportar maior quantidade de aplicações, SDs

devem blindá-las aspectos indesejáveis das redes. • Necessidade de adaptação do comportamento (não de

seus componentes) de SDs em tempo de execução. • Organização dos componentes:

•  Fazer monitoração. •  Ajustes automáticos. •  Decidir onde são executados processos que manipulam a

adaptação.

• Computação autonômica (ou sistemas auto): sistemas de realimentação de controle de alto nível que permitam adaptação automática a mudanças.

Page 4: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Autogerenciamento em SDs • Sistemas auto:

•  Auto-gerenciador •  Auto-reparador •  Auto-configurador •  Auto-otimizador

• Auto-gerenciador: termo genérico para englobar suas variantes.

Page 5: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Realimentação de controle • Existem diversas visões de sistemas auto-gerenciadores. • Em comum: adaptação ocorre através de um ou mais

laços de realimentação de controle. •  Fig. 53. • Núcleo: componentes a serem gerenciados.

•  Guiados por parâmetros de entrada que podem ser controlados. •  Porém, podem também ser influenciados por perturbações ou

ruídos, i. e., entradas não controláveis. •  Perturbações: frequentemente advindas do ambiente do SD, mas

podem vir de interações não previstas de componentes.

Page 6: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Realimentação de controle •  Três elementos que formam o laço de realimentação de

controle. •  1. O sistema a ser monitorado

•  Vários aspectos do sistema precisam ser medidos. •  Dados: medição e estimação. Medição pode ser difícil ou pode

acarretar interferência na própria medição (p.ex. princípio da incerteza de Heisenberg / Gato de Schrödinger).

•  2. Componente de análise de realimentação •  Analisa medições e as compara com valores de referência. •  Algoritmos que decidem possíveis adaptações.

•  3. Mecanismos para influenciar o comportamento do sistema. •  Colocação de réplicas, mudança de prioridade de escalonamento,

troca dinâmica de serviços, movimentação de dados, redirecionamento, etc.

•  Acionados pelo componente de análise (este, ciente dos mecanismos e seus efeitos).

Page 7: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Realimentação de controle • Obs: laço de realimentação de controle também se ajusta

ao gerenciamento manual. •  Diferença é, justamente, a automatização do componente de

análise.

• De uma forma ou outra, precisa-se de monitoração decente, assim como mecanismos decentes para controlar comportamento do sistema.

• Algoritmos para análise dos dados e ações corretas são dificuldade no desenvolvimento de sistemas auto-gerenciadores.

• Organização lógica (Fig. 53) pode ser diferente da organização física. •  Componente de análise pode ser distribuído, por exemplo. •  Monitoração em cada máquina.

Page 8: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Processos

Page 9: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Processos • Processo: um programa em execução no sistema

operacional. •  Importante: gerenciamento e escalonamento.

• Em sistemas distribuídos: •  Cliente-servidor: conveniente usar multi-threading. •  Permitem clientes e servidores constuídos de modo que

comunicação e processamento se sobreponham.

• Virtualização / máquinas virtuais.

• Migração de processos / migração de código.

Page 10: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Processos e threads • Granularidade oferecida pelos SOs

•  Processos

• Pode ser refinada •  Threads.

•  Facilita construção de aplicações e melhora no desempenho.

Page 11: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Processos e threads • SO cria vários processadores virtuais

•  Cada um executa um programa

• Controle através de tabela de processos •  Valores de registradores de CPU •  Mapas de memória •  Arquivos abertos •  Privilégios •  Etc.

• Processo: um programa em execução à programa sendo executado em um dos processadores virtuais do SO

Page 12: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Processos e threads • SO toma conta para não haver interferência, intencional

ou não, entre processos. •  Compartilhamento concorrente de CPU (e outros recursos) é

transparente. •  SO requer suporte de hardware para essa separação.

• Criar processos •  Criar espaço de endereço independente. •  Inicializar segmentos de memória (zerar, copiar dados). •  Pilha para dados temporários.

• Chaveamento entre processos: •  Salvar contexto de CPU (registradores, contador de programa,

ponteiro de pilha). •  Modificar registradores do gerenciamento de memória. •  Invalidar caches da TLB.

Page 13: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Processos e threads •  Thread: sua própria porção de código, independente de

outras threads. • Sem esforço para oferecer de transparência de

concorrência. •  Controle guarda informação mínima necessária ao

compartilhamento de CPU. •  Contexto de thread = contexto de CPU + algumas informações

para gerência de threads. •  Ex.: monitorar exclusão mútua para não dar tempo de CPU a uma

thread bloqueada.

• Proteger dados contra acesso inadequado é tarefa do desenvolvedor da aplicação multithread.

Page 14: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Processos e threads • Monothread: chamada que bloqueia, bloqueia qualquer

ação do processo. • Multithread: pode-se separar o processo em threads que

podem executar de forma independente. •  Torna possível explorar paralelismo ao executar em

multiprocessador; cada thread em uma CPU. •  Pode executar também em um sistema monoprocessado, talvez

leve mais tempo. •  Cada vez mais importante com processadores multicore baratos.

• Aplicações grandes multiprocesso: •  Comunicação entre processos demanda intervenção do núcleo em

chamadas de sistema e chaveamento de contexto entre processos.

•  Com threads, minimiza overhead já que tudo acontece no espaço do usuário.

Page 15: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Threads • Duas abordagens

•  Modo de usuário. •  Núcleo ciente, com escalonamento.

• Modo de usuário (user thread) •  Criar e terminar threads é mais barato •  Alocar/liberar memória para pilha de threads •  Chaveamento de contexto com poucas instruções

•  Troca de valores de registradores de CPU •  Não precisa mudar mapas de memória, limpar TLB, etc. •  Necessário para sincronização

• Núcleo (kernel thread) •  Perde vantagens da thread, oferece melhor escalonamento

quando bloqueios em threads acontecem.

Page 16: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Threads • Solução intermediária: Lightweight processes (LWP). • Processos que compartilham recursos

•  Espaço de endereçamento, páginas de memória física, sinalização e manipuladores de arquivos).

•  Evita troca de contexto. • Pode ser visto como uma CPU virtual disponível para

executar código ou chamadas de sistema. •  LWP roda sobre uma kernel thread. •  Fig. 54

Page 17: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

LWP •  LWP + threads no espaço do usuário • Criar, destruir e sincronizar threads é barato, sem

intervenção do núcleo. • Se processo tem LWPs suficientes, chamada bloqueante

não suspenderá processo inteiro. •  Independentes de aplicação. •  Facilidades para multiprocessamento (LWP à

processador).

• Upcalls para threads vs. LWP

Page 18: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Threads em SDs •  Threads atraentes

•  Manipular diversas comunicações lógicas •  Permitir progresso da aplicação

• Cliente •  Esconder atrasos de comunicação. •  Iniciar comunicação e prosseguir com processamento

independente. •  Ex. browsers web.

Page 19: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Threads em SDs • Servidor

•  Simplifica código. •  Facilita desenvolvimento paralelo.

• Ex: servidor de arquivos •  Com thread vs. sem threads

•  Fig. 55

Page 20: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização

Page 21: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização

• Threads/processos: • Modo de fazer mais coisas ao mesmo tempo. • Concorrência - impressão de execução paralela em

computador monoprocessado. • “fingir maior capacidade”

•  Pode ser estendida a outros tipos de recursos. • Virtualização de recursos.

Page 22: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização

• Virtualização de recursos • Utilizada há muito tempo. •  Interesse renovado

• Sistemas com maior capacidade. • Sistemas distribuídos tornaram-se mais comuns e

complexos.

Page 23: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização • Sistema de computadores

•  Interface de programação para software de alto nível.

• Diferentes interfaces • Conjunto básico de instruções oferecido por uma CPU. • Conjunto de interfaces de programação de middlewares.

• Virtualização: estender ou substituir uma interface de modo a imitar o comportamento de um outro sistema.

Page 24: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização

Page 25: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização • Virtualização na década de 70:

• Softwares em hardwares caros de mainframes.

• Onde software pode ser: • Aplicações. • Sistemas operacionais (SOs). • Aplicações + SO para os quais havia sido desenvolvido.

• Mainframes IBM 370 e sucessores. • Ofereciam máquina virtual para diferentes SOs.

Page 26: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização

Erich Amrehn, Jim Elliot. 45 (40)Years of Mainframe Virtualization: CP-67/CMS and VM/370 to z/VM. 2012.

Page 27: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização

• Hardware mais barato. • Computadores mais potentes. • Menor quantidade de SOs. • Virtualização deixava de ser importante.

• Final da década de 90 • Virtualização voltou a se tornar importante.

Page 28: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização • Atualmente

• Servidores mais baratos • Maior capacidade computacional.

• Custo total da posse inclui outras variáveis • Manutenção • Suporte e administração • Custos associados a brechas de segurança e falhas.

• Consolidação de servidores • Motivador importante para uso de virtualização.

Page 29: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização

• Máquina virtual em diferentes níveis de abstração • Processos individuais • Sistemas completos

• Máquinas virtuais • Uso flexível de hardware e isolamento de software. •  Tradução de conjuntos de instruções.

• Variedade de arquiteturas de máquinas virtuais. •  Máquinas virtuais de processo e de sistema.

Page 30: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização - motivação • Reduzir a quantidade de plataformas de hardware

• Atende softwares com necessidades diferentes. • Cada aplicação executa em sua própria máquina virtual.

•  Incluindo bibliotecas e o sistema operacional.

• Portabilidade • Flexibilidade

• Gerenciamento mais fácil de replicação. • Cópia dinâmica de servidores + ambiente.

Page 31: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização - motivação

• Consolidação de servidores. • Consolidação de aplicações. • Sandboxing. • Múltiplos ambientes de execução. • Hardware virtual. • Executar múltiplos SOs simultaneamente.

Page 32: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Virtualização - motivação • Depuração

• Depuração de aplicações de usuário sem preocupação com problemas de interrupção de outras aplicações/serviços.

• Migração •  Facilita migração de software.

• Administração • Empacotar aplicações junto com ambiente de execução.

• Teste • Produção de cenários de teste arbitrários difíceis de

produzir na prática.

Page 33: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Abstração e virtualização

• Abstração com interfaces bem definidas ajuda no desenvolvimento e manutenção.

• Escondem detalhes de implementação

• Ex.: SO abstrai sistema de arquivos e endereçamento. • Disco aparece como um conjunto de arquivos de tamanhos

variados, escondendo setores e trilhas. • Programadores manipulam arquivos pelos nomes.

Page 34: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Abstração e virtualização

• Arquitetura do conjunto de instruções (ISA) •  exemplo das vantagens de interfaces bem definidas.

•  IA-32 (x86) •  Intel e AMD implementam. • Softwares são desenvolvidos para esse conjunto de

instruções • Devem compilar e executar corretamente em qualquer

computador com processador IA-32.

Page 35: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Abstração e virtualização • Abstração possui limitações.

• Binários compilados estão amarrados à arquitetura-alvo. •  Impede interoperabilidade. •  Importante em computadores heterogêneos conectados.

• Mapeamento para sistema real potencialmente diferente pode contornar esse problema. • Sistema virtual apresentado como outro sistema, ou

múltiplos sistemas.

Page 36: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Abstração e virtualização • Virtualização

•  Não necessariamente simplificar ou esconder detalhes. • Ex.: virtualização de disco

•  1 disco grande à dois virtuais menores, cada um com seu conjunto de trilhas e setores.

• Software de virtualização utiliza a abstração de arquivos como um passo intermediário para o mapeamento entre disco real e virtual.

• Escrita no disco virtual à escrita de arquivo no disco real. • Nível de detalhes virtual X real

• Não há abstração.

Page 37: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Abstração e virtualização

James E. Smith, Ravi Nair. The Architecture of Virtual Machines. IEEE Computer.

Page 38: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Aplicável a máquinas inteiras e outros componentes. • Para discutir máquinas virtuais (virtual machines – VMs) é preciso entender arquitetura de sistemas de forma geral.

• Arquitetura: especificação formal de interfaces do sistema.

•  Implementação: “personificação” de uma arquitetura.

Page 39: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Em geral, sistemas de computadores oferecem 4 tipos diferentes de interfaces em 4 níveis diferentes: •  1: instruções de máquina que podem ser invocadas por

qualquer pograma. •  2: instruções de máquina que podem ser invocadas

somente por programas privilegiados, como o sistema operacional.

•  3: Chamadas de sistema: oferecidas por um sistema operacional.

•  4: Chamadas de biblioteca: conjunto conhecido como interface de programação de aplicativo (API).

Page 40: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

Page 41: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

Page 42: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

•  Instruction Set Architecture (ISA)

Page 43: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Application Binary Interface (IBA)

Page 44: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

• Application Programming Interface (API)

Arquiteturas de Máquinas Virtuais

Page 45: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

• Máquina:

• Espaço lógico de memória atribuído ao processo. •  Instruções de nível de usuário. • Registradores que permitem a execução do código do

processo. • E/S é visível somente através de chamadas de sistema (SO).

• ABI define uma máquina como vista pelos processos.

Arquiteturas de Máquinas Virtuais

Page 46: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Do ponto de vista do SO e das aplicações: • Sistema roda sobre uma máquina subjacente • É capaz de suportar múltiplos processos simultaneamente.

• Processos compartilham dispositivos de E/S. • Sistema “sobrevive” às idas e vindas dos processos. • Aloca memória real e recursos de E/S aos processos • Controla acesso.

• Da perspectiva do sistema: hardware define a máquina •  ISA fornece interface entre sistema e a máquina.

Page 47: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

•  Também há ponto de vista diferente para máquinas virtuais. • Máquina virtual de processo

•  Plataforma que executa apenas um processo. •  Existe somente para suportar o processo. •  Criado quando o processo é criado. •  Termina quando processo termina.

• Máquina virtual de sistema •  Fornece um ambiente de sistema completo e persistente. •  Suporta um sistema operacional e seu conjunto de processos de

usuário. •  Fornece ao sistema operacional convidado acesso a recursos de

hardware virtuais (rede, E/S etc.)

Page 48: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Convidado: processo ou sistema em uma VM. • Hospedeiro: plataforma que suporta a VM. • Virtualização pode ocorrer de dois modos.

• Virtualização de processo, através de runtime software. • Virtualização de máquina, através de virtual machine

monitor.

Page 49: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Máquina virtual de processo • Sistema de execução com conjunto de instruções abstrato

para executar aplicações. •  Instruções interpretadas (p. ex. Java). • Emulação (Wine) – necessário imitar comportamento de

chamadas de sistema (não trivial). • Chamada de máquina virtual de processo (Smith e Nair) /

runtime software.

Page 50: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

Máquina virtual de processo

Page 51: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Máquina virtual de sistema • Protege completamente o hardware original. •  Interface: conjunto de instruções completo do mesmo (ou

de outro) hardware. • Pode ser oferecida simultaneamente a programas

diferentes. • Vários sistemas operacionais executando independente e

concorrentemente na mesma plataforma. • Camada chamada de Virtual Machine Monitor – VMM – ou

hypervisor. • Exemplos de VMMs: VMWare, Xen, KVM.

Page 52: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Máquina virtual de sistema

Page 53: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• Tipos de monitores de máquina virtual (VMMs) •  Tipo 1: nativa (bare metal): executa sobre uma interface

direta com hardware. •  Tipo 2: hospedada (hosted): executa sobre um sistema

operacional em uma máquina hospedeira.

Page 54: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

Page 55: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• VM de processo: software de virtualização está no nível de ABI ou API.

• Emula instruções de nível de usuário e chamadas de sistema.

Page 56: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

• VM de sistema: software de virtualização está entre o hardware e o software convidado.

• Se mostra como ISA potencialmente diferente do hospedeiro.

• VMM muitas vezes tem o papel de fornecer recursos de hardware virtualizados ao invés de tradução de ISA

Page 57: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de Máquinas Virtuais

•  Importante para confiabilidade e segurança. •  Isolamento de uma aplicação completa e seu ambiente. •  Falha não afeta outras VMs.

• Melhor portabilidade. • Desacopla hardware e software. • Permite mover ambiente completo.

• Máquinas paralelas • Permite consolidação de servidores. • Maximizar utilização.

Page 58: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Alguns conceitos em máquinas virtuais

Page 59: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais

Page 60: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais • Simulação instrução por instrução: conhecida há décadas. • Ex.: aplicação para um computador X cujo hardware

ainda está em desenvolvimento. • Simulador para X (processador, memória, periféricos)

que rode em máquina de propósito geral G. • Programas que rodam em G poderão rodar em X com

mesmos resultados. • Espaço de memória simulado, dispositivos simulados,

executar instruções na máquina simulada. • Camada que filtra e protege os recursos da máquina

G.

Page 61: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais • Para múltiplos programas, pode-se:

• Múltiplas cópias do simulador. • Simulador capaz de dividir o tempo entre aplicações. •  Ilusão de múltiplas cópias da interface de hardware-

software da máquina X em G.

Page 62: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais • X e G arbitrários

• Software de simulação pode ser muito complexo •  Desempenho impraticável. •  Mais utilizado para desenvolvimento de software.

• X e G idênticos • Muitas cópias da interface hardware-software de G em G. • Cada usuário com sua cópia privada da máquina G. • Escolha do SO para rodar em sua máquina privada. • Desenvolver/depurar seu próprio SO. • Simuladores não interferem um no outro. • Slowdown menor que para X diferente de G.

Page 63: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais • Surgimento dos VMMs

• Necessidade de simuladores mais eficientes de múltiplas cópias de uma máquina sobre seu próprio hardware.

• Parte do software para máquinas simuladas roda sobre o hardware, sem interpretação de software.

• Chamados de Virtual Machine Systems. • Máquinas simuladas: máquinas virtuais (VMs). • Software simulador: virtual machine monitor (VMM).

Page 64: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais • VMM: interface única à ilusão de muitas máquinas. • Cada interface (VM) é uma réplica eficiente do sistema de computação original. •  Todas as instruções de processador (privilegiadas ou não). •  Todos os recursos dos sistema (memória e E/S).

• VMs em paralelo à diversos SOs (núcleos privilegiados) concorrentemente.

• VMs fornecem réplicas isoladas de um ambiente em um sistema de computação.

Page 65: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais • Recursos extras (CPU, memória) são usados pelo VMM. • Potencial queda na vazão do sistema.

• Manter estado do processador virtual. •  Integridade de todos os registradores visíveis, bits de

estado e locais de memória reservada (controle de interrupção) devem ser preservados.

• Captura e simulação de instruções privilegiadas. • Suporte a paginação em máquinas virtuais.

Page 66: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais

• Podem ser utilizadas para manter sistemas antigos • Novos sistemas podem ser testados • Programas podem ser convertidos.

• Atualizar/adicionar novos dispositivos sem alterar SO da máquina virtual • VM já suporta o dispositivo virtualizado. • Usuário tira vantagem do dispositivo atualizado sem

necessidade de alteração de software.

Page 67: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais

• Teste de softwares de rede. • Confiabilidade de software através de isolamento.

• VMM é provavelmente correta: pequena e verificável. • Segurança de dados.

Page 68: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais • VMM

• Camada software/hardware físico programável, •  Transparente ao software acima • Usa eficientemente o hardware abaixo dela.

• De forma similar: • Virtualização de rede • Virtualização de armazenamento •  Fornecem capacidade de multiplexar, em um único recurso

físico, vários sistemas virtuais isolados uns dos outros.

Page 69: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema

Page 70: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema • VM

•  Fornece ambiente completo de sistema

• VMM •  1 plataforma de hardware. • Múltiplas VMs à múltiplos ambientes de sistema

operacional independentes simultaneamente.

•  Isolamento entre sistemas concorrentes no mesmo hardware. • Característica importante de máquinas virtuais. • Sem interferência em caso de falha.

Page 71: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema

• VMM fornece, primordialmente, replicação de plataforma.

• Problema central: dividir recursos de hardware limitados entre múltiplos sistemas operacionais convidados.

• VMM tem acesso e gerencia todos os recursos de hardware.

Page 72: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema

• SO convidado e suas aplicações são gerenciadas sob controle (escondido) do VMM.

• SO realiza instrução privilegiada ou acesso a recurso: VMM intercepta a operação, realiza verificações, e a realiza em nome do SO convidado.

• SO convidado não é ciente dessa camada.

Page 73: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema • Para usuário, sistemas de VM fornecem essencialmente a mesma funcionalidade • Diferem na forma de implementação.

• Sistema de VMs clássico • VMM sobre o hardware. • Modo de privilégio mais alto. • Sistemas convidados: privilégios reduzidos

•  Permite a interceptação pela VMM. •  Ações de SO convidado: seriam interação direta com o

hardware; são tratadas pela VMM.

Page 74: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema • Hosted VMs:

• Software de virtualização roda sobre um sistema operacional hospedeiro.

• Vantagem: usuário instala VMM como um software típico. • Software de virtualização pode se apoiar no sistema

operacional hospedeiro para utilizar drivers de dispositivos e outros serviços de nível mais baixo.

• VMWare GSX Server

Page 75: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema • Paravirtualização:

• Modificações no SO convidado. •  Interface para um sistema similar mas não idêntico ao

hardware nativo subjacente. •  Interface de paravirtualização especialmente projetada

para contornar características que tornam difícil a virtualização do ISA subjacente.

• Ganho de desempenho; menor portabilidade e compatibilidade.

• Ex.: Xen.

Page 76: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema • Whole-system VMs:

• Hospedeiro e sistema convidado podem não utilizar mesmo ISA (Ex. Windows / Power-PC).

• Whole-system VMs virtualizam todo o software, incluindo SO e aplicações.

•  ISA diferentes: necessário emular códigos das aplicações e do SO.

• Virtual PC.

Page 77: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema • Multiprocessor virtualization

• Hospedeiro é máquina grande e multiprocessada. • Particionar em sistemas menores multiprocessados

•  Distribui os recursos de hardware • Particionamento físico: recursos físicos separados para

cada sistema virtualizado. •  Alto grau de isolamento.

• Particionamento lógico: hardware é multiplexado no tempo entre as diferentes partições. •  Melhora utilização dos recursos. •  Perde-se benefícios de isolamento de hardware.

Page 78: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema • Codesigned VMs

•  Implementam ISA novo e proprietário focado em melhoria de desempenho e eficiência energética.

•  ISA do hospedeiro: novo ou extensão de ISA existente. • Não possui aplicações nativas. • VMM tem propósito de emular ISA do software convidado. • VMM reside em região de memória oculta dos softwares

convencionais. •  Inclui tradutor binário que converte instruções do

convidado em sequências otimizadas de instruções do ISA do hospedeiro.

Page 79: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Máquinas virtuais de sistema

• Codesigned VM: Transmeta Crusoe • Hardware: VLIW. • Convidado: Intel IA-32 • Economia de energia.

Page 80: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Clientes em SDs

Page 81: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Interfaces • Grande parte de software de cliente é focada em interfaces (gráficas) para usuário. • Clientes magros

• Exemplo sistema X-Window

• Fig. 56

Page 82: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transparência • Partes da aplicação podem também ser executadas no lado cliente.

• Componentes para conseguir transparência de distribuição.

• Transparência de acesso: apêndice (stub) de cliente conforme definição da interface oferecida pelo servidor. •  Fornece a mesma interface que está no servidor, mas

oculta diferenças em arquiteturas de máquina e a comunicação.

Page 83: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Transparência • Transparência de localização/migração: software do lado cliente pode saber localização. • Permite esconder localização geográfica do usuário.

• Transparência de replicação • Vincular-se a servidor de forma transparente. •  Fig. 57

• Transparência de falha • Pode ser do lado do cliente. • Ex. tentar conexão várias vezes.

Page 84: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Servidores em SDs

Page 85: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Organização geral • Processo que espera por requisições de serviço. • Na prática, mapeamento um-para-um entre porta e serviço.

• Superservidores • Escutam várias portas (serviços independentes). •  Iniciam processo do servidor quando chega requisição

(inetd). •  Iterativo vs. concorrente:

• Um vs. múltiplos clientes ao mesmo tempo.

Page 86: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Comunicação Fora da banda • Comunicação fora da banda: permite enviar dados em canal separado. • Por ex. Interromper um servidor uma vez aceito

(transferência de arquivo). • Porta de controle separada.

Page 87: MC714bit/ensino/mc714_2s13/aulas/aula14.pdf · ao gerenciamento manual. ... • Ex.: virtualização de disco • 1 disco grande ! dois virtuais menores, cada um com seu conjunto

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Servidores e estados • Servidor sem estado: não mantém informações sobre estado dos clientes. • Servidor web. • Não lembra de clientes.

• Servidor com estado: mantém informações persistentes dos clientes. • Servidor de arquivos (FTP, dropbox).