• Nenhum resultado encontrado

DSD20092 2 Processos ParteIIeIII Virtualizacao ClienteServidor

N/A
N/A
Protected

Academic year: 2021

Share "DSD20092 2 Processos ParteIIeIII Virtualizacao ClienteServidor"

Copied!
45
0
0

Texto

(1)

Processos

  Parte II Virtualização

(2)

• A maior parte destas notas de aula são baseadas  nos slides do professor Dr. Ying Lu, da  Disciplina de Sistemas Operacionais  Distribuídos (CSCE455/855), do  Departamento de Ciência da Computação e  Engenharia, da Universidade de Nebraska­ Lincoln. • Os slides originais foram traduzidos do inglês para  porguês, com algumas modificações e  incrementos, em alguns casos.

Créditos:

(3)

Processos

Parte II

(4)

Virtualização

A multiprogramação de sistemas operacionais 

prove a ilusão de execução simultânea através 

da virtualização de recursos

Utiliza software para parecer que processos  concorrentes são executados simultaneamente

Virtualização trabalha com a “extensão ou 

substituição de interfaces existentes de modo a 

imitar o comportamento de outro sistema”

(5)

O Papel da Virtualização em Sistemas 

Distribuídos

Figura (a) Organização geral entre o programa, a interface e o sistema.  (b) Organização geral da virtualização do sistema A no topo do 

(6)

Por que Virtualização Agora?

Hardware e software de baixo nível mudam 

rapidamente

Software de alto nível (middleware, aplicações) 

mudam mais lentamente

Virtualização torna possível a execução de 

middleware existente sobre novas plataformas 

exportando uma interface comum

O middleware exporta uma interface familiar às  aplicações, permitindo que elas executem sobre a  nova plataforma

(7)

Por que Virtualização Agora?

Virtualização também torna possível o 

encapsulamento de uma aplicação em sua 

própria máquina virtual

Essa abordagem suporta portabilidade, no 

sentido de que a aplicação ou servidor pode 

rodar sobre plataformas heterogêneas desde 

que hajam camadas de interface comuns, 

como um MMV (Monitor de Máquinas 

Virtuais ­ máquinas virtuais através de 

emulação)

(8)

Quatro Interfaces (1, 2)

Uma interface entre hardware e software 

consistindo de instruções de máquina

que podem ser invocadas por qualquer  programa

Uma interface entre o hardware e o software, 

consistindo de instruções de máquina

que pode ser invocada somente por programas  privilegiados, como sistemas operacionais

(9)

Quatro Interfaces (3, 4)

Uma interface consistindo de chamadas de 

sistema assim como as oferecidas por um 

sistema operacional

Uma interface constituída de chamadas de 

biblioteca

Geralmente formando as APIs (Application  Programming Interface) – Em muitos casos, as próprias chamadas de  sistema são escondidas por uma API

(10)

Arquiteturas de Máquinas Virtuais

(11)

Dois Tipos de Virtualização (1)

Máquina Virtual Processo: virtualização 

através de interpretação ou emulação

Essencialmente realizada para um processo  apenas – Prove um conjunto abstrato de instruções de  máquina; programas são compilados para código  de “máquina”, que é então interpretado (ex.: Java)  ou emulado (ex.: Windows)

(12)

Arquiteturas de Máquinas Virtuais

Uma máquina virtual processo, com combinações de múltiplas  instâncias de aplicação e sistemas runtime. Provides an abstract instruction set.

(13)

Dois Tipos de Virtualização (2)

Monitor de Máquinas Virtuais: capaz de 

prover uma máquina virtual para vários e 

diferentes programas simultaneamente; como 

se múltiplas CPUs estivessem em execução 

em uma única plataforma

Particularmente importante em sistemas  distribuídos por que as aplicações são isoladas e  os erros restritos a uma única máquina virtual – Exemplos: Vmware, Xen, KVM, Qemu e  VirtualBox

(14)

Arquiteturas de Máquinas Virtuais

Um monitor de máquinas virtuais, com combinação de múltiplas  instâncias de  aplicações e sistemas operacionais. O hardware é  completamente  escondido pleo  MMV

(15)
(16)
(17)

Processos

Parte III

(18)

Clientes

Máquinas cliente devem suportar a 

comunicação dos usuários com servidores 

remotos.

Uma abordagem: aplicações possuem dois 

componentes:

Um roda na máquina clienteUm roda na máquina servidoraEles interagem diretamente

Middleware suporta a comunicação; ex.: através 

de RPCs (Remote Procedure Calls)

(19)

Interação Cliente Servidor

(20)

Clientes

Outra abordagem consiste em limitar o papel do 

cliente provendo uma interface para aplicações 

no servidor

De fato, a máquina cliente torna­se apenas um  terminal conectado ao servidor

Isso é típico da abordagem dos thin clients

Simplifica a administração do sistema

(21)

Interação Cliente Servidor

(22)

Software do lado do Cliente

Gerenciamento da interface de usuário

Partes do processamento e dos dados

Suporte para distribuição transparente

Ideal: o cliente não deveria ter que saber que o  servidor está remotamente localizado – Stubs do lado do cliente podem prover a mesma  interface que o servidor prove – acesso transparente

(23)

Software do lado do Cliente para 

Distribuição Transparente

Replicação transparente de um servidor utilizando uma  solução no lado do cliente. A aplicação cliente transforma uma simples requisição em múltiplas  requisições; recebe múltiplas respostas e transforma elas e uma única  resposta.

(24)

Transparência ­ Cliente

Clientes podem garantir transparência 

de:

Replicação;Acesso;Falha.

E sobre:

Transparência de concorrênciaAtravés de servidores intermediários especiais  (monitores de transações)

(25)

Servidores

Um processo que implementa um serviço para 

uma coleção de clientes

Passivo: aguarda até a chegada de uma 

requisição

Servidores iterativos: trata uma requisição em 

um determinado tempo e retorna uma resposta 

para o cliente

Servidores concorrentes: trabalham como um 

ponto central de recebimento

Servidores multi­thread versus múltiplos processos  (forking)

(26)

Contactando o Servidor

As requisições do cliente são enviadas para 

uma porta do servidor

Como as portas são localizadas?

Pontos finais universais.  Exemplo: a porta TCP 80 é a  localização das requisições HTTP. 

Outros serviços possuem número de porta 

designados pelo SO; Os pontos finais precisam 

ser localizados da mesma forma – talvez 

através de um daemon local

(27)

Aspectos Gerais de Projeto (1)

Amarração entre cliente e servidor através de um 

(28)

Contactando o Servidor

As requisições do cliente são enviadas para 

uma porta do servidor

Como as portas são localizadas?

Pontos finais universais.  Exemplo: a porta TCP 80 é a  localização das requisições HTTP. 

Outros serviços possuem número de porta 

designados pelo SO; Os pontos finais precisam 

ser localizados da mesma forma – talvez 

através de um daemon local

OU …“super­servidores” podem escutar várias 

portas, criando servidores de acordo com a 

necessidade.

(29)

Aspectos Gerais de Projeto (2)

Amarração entre cliente e servidor utilizando um 

(30)

Stateful versus Stateless

Alguns servidores não mantém informação 

sobre os clientes (Stateless)

Exemplo: um servidor Web que implementa a  definição padrão de requisições HTTP não precisa  memorizar quais clientes o contactaram – No caso da Web, cookies são armazenados pelo  navegador cliente. Qual a finalidade?

Servidores Stateful mantém informações sobre 

os clientes e o estado destes (ex.: atualização 

do arquivo X).

A perda do estado pode implicar em perda  permanente de informação.

(31)

Clusters de Servidores

Um cluster de servidores é uma coleção de 

máquinas, conectadas através de uma rede, 

onde cada máquina roda um ou mais servidores

Frequentemente os clusters ocorrem em LANs

Estrutura de três camadas

As requisições do cliente são roteadas para um dos  servidores através de um switch intermediário  (front­end)

(32)

Cluster de servidores em três camadas

Camada 1: o switch

Camada 2: os servidores

Alguns servidores do cluster podem necessitar de  máquinas específicas para processamento de dados – Em outros casos, o maior gargalo pode ser o  acesso aos dados

Camada 3: servidores de processamento de 

dados (ex.: servidores de arquivos e servidores 

de banco de dados)

(33)

Clusters de Servidores (1)

Organização geral de um cluster de servidor em 

(34)

Clusters de Servidores (2)

O princípio do handoff TCP. – A camada de transporte  repassa as requisições para um dos servidores

Transparência: como esconder a arquitetura  do servidor do cliente?  

(35)
(36)

PlanetLab (1)

uma rede de pesquisa global

Um sistema distribuído colaborativo que conta com a  contribuição de um ou mais computadores de  diferentes organizações • Atualmente o PlanetLab consiste em 918 nós em 464  sites

(37)
(38)

PlanetLab (2)

Em conjunto, os computadores do PlanetLab  formam um cluster de servidores de uma camada,  onde o acesso, processamento e armazenamento  pode ocorrer em qualquer nó da infra­estrutura • É utilizado para o desenvolvimento de novas  tecnologias para armazenamento distribuído,  mapeamento de rede, sistemas P2P, tabelas hash  distribuídas e processamento de consultas

(39)

Um nó do PlanetLab

(40)

PlanetLab (3)

Aspectos de gerenciamento do PlanetLab: • Os nós pertencem a diferentes organizações – Cada organização deveria ter a possibilidade de especificar  que é autorizado a executar aplicações em seus nós – O uso de recursos é apropriadamente restritoFerramentas de monitoramento disponíveis assumem  uma combinação muito específica de hardware e  software.  – Todas customizadas para serem utilizadas em um única  organização • Programas de diferentes partes rodando em um mesmo  nó não devem provocar interferências entre si

(41)

PlanetLab (4)

As relações de gerenciamento entre as várias 

(42)
(43)

PlanetLab (5)

Relacionamentos entre as entidades do Planetlab: 2. O proprietário do nó coloca­o sobre o regime de  regenciamento de uma autoridade, possivelmente  restringindo o uso quando apropriado. 3. Uma autoridade de gerenciamento prove o software  necessário para adicionar um nó ao PlanetLab. 4. Um provedor de serviços é registrado junto a uma  autoridade de gerenciamento, confiando nela para  prover nós com comportamento normal.

(44)

PlanetLab (6)

Relacionamentos entre as entidades do Planetlab: 2. Um provedor de serviços contacta uma autoridade   para criar uma coleção de nós. 3. A autoridade local (gerenciadora dos slices) precisa  autenticar o provedor do serviço. 4. Um proprietário de nós delega gerenciamento de  recursos para a autoridade local. Esta cria slices para  o provedor do serviço. 5. Uma autoridade de gerenciamento delega a criação  de conjuntos de computação para a autoridade local.

(45)

Algumas referências

CSCE 455/855: Distributed Operating Systems.  http://www.cse.unl.edu/~ylu/csce455/notes/ • Distributed Sistems – Principles and Paradigns.  Tanenbaum and van Steen. • PlanetLab. http://www.planet­lab.org/Planet Lab na RNP. http://www.rnp.br/pd/planetlab/Google Images => PlanetLab.  http://images.google.com.br/ • Avaliação de Desempenho de Máquinas Virtuais Xen  e KVM para servidores HTTP. SIPE II (2009). Lucas  Arbiza e Diego Kreutz.  http://docs.google.com/present/embed?id=d87zwsq_7dvgswkcr

Referências

Documentos relacionados

e máquinas, permitindo que cada aplicação seja executada na sua própria máquina virtual com bibliotecas e sistema operacional.. 3 Processos – 3.2 Virtualização.. 3.2.2

Casou com José Antonio Tres em 28 Apr 1923 em Cotipora, Rio Grande do Sul, Brasil... Geração

Estudos epidemiológicos têm demonstrado forte associação entre o sedentarismo e a presença de fatores de risco cardiovascular como hipertensão arterial, resistência à

Sendo a contingência a única realidade que existe, esse fluxo atinge constantemente a nossa vida, só podendo falar de uma Verdade a partir da própria contingência, que não

O SIL significa que não se tem qualquer tipo de hardware na simulação, ou seja, os modelos virtuais de um sistema físico e a lógica de programação de um PLC, são simulados

Num curso do 3º ciclo do ensino básico recorrente (educação de adultos), enquanto docentes da área curricular de EA, promovemos a realização de diversos trabalhos de projecto

A inibição do mecanismo de secreção da lacase pela Botrytis cinerea, associado ao bloqueio do desenvolvimento do fungo através da inibição da secreção das enzimas necessárias

When the 10 th percentile of the Alexander stan- dard growth curve for twins was used, a birth weight below the 10 th percentile was observed in 4.9% of newborn of