You are on page 1of 38

Sistemas Distribudos

Prof. Maurcio Beraldin Barreto


mauricio.barreto@unilasalle.edu.br

Unilasalle 05/03/13 Encontro 03

Agenda
Reviso Aula 02
Arquiteturas

Processos
Processos, Threads, Clientes e Servidores Virtualizao

Trabalhos
1 Middleware (prazo 26/03) 2 Virtualizao (prazo 12/03)

Comunicao Nomeao Sincronizao Consistncia e replicao Tolerncia a falha Segurana


2

Reviso Arquiteturas
Estilos Arquitetnicos
(a) Arquitetura em camadas (b) Arquitetura baseadas em objetos (c) Arquitetura centralizada em dados (d) Arquitetura baseada em eventos

Reviso Arquiteturas
Arquitetura de Sistemas
Arquiteturas Centralizadas
Camadas de aplicao Arquiteturas multidividas

Arquiteturas Descentralizadas
Peer-to-Peer estruturadas Peer-to-Peer no estruturadas

Arquiteturas Hibridas
Sistema de servidor de borda Sistemas distribudos colaborativos
4

Reviso Arquiteturas
Autogerenciamento em Sistemas Distribudos

Reviso Arquiteturas
Resumo
Aplicaes do tipo Cliente-Servidor
Cliente: envia a requisio ao Servidor Servidor: produz o resultado reenviando ao Cliente

Peer-to-Peer
Arquitetura descentralizada Organizao por rede de Sobreposio

Lao de controle
Monitorao Integrao ao Sistemas distribudos (SD)
6

Sistemas Distribudos Processos


Definies
Processos
Programas em execuo

Threads em Sistemas Distribudos


Permite que Clientes Servidores sejam construdos de modo tal que comunicao e processamento local possam se sobrepor

Ou seja... Thread executa sua prpria poro do cdigo


7

Sistemas Distribudos Processos


Clientes Multitread
Exemplo??? Aplicao???
Dica: Necessidade de esconder longos tempos de propagao de mensagens entre processos em sistemas SD....

Sistemas Distribudos Processos


Clientes Multitread
Exemplo: Browsers Web
Documento Web consiste em um arquivo HTML (referncia a imagens, cones, links de terceiros,...) Conexo TCP/IP Cada Threads estabelece uma conexo separada com o Servidor e traz os dados Replicao =>> transferncia em paralelo

Sistemas Distribudos Processos


Servidores Multitread
Principal utilizao (foco) Paralelismo visando alto desempenho

10

Sistemas Distribudos Processos


Tabela 1 Trs modos de construir um servidor

Modelo
Threads Processo monothread Mquina de estado finito

Caractersticas
Paralelismo, chamadas bloqueadoras de sistemas Sem paralelismo, chamadas bloqueadoras de sistema Paralelismo, chamadas de sistemas bloqueadas
11

Sistemas Distribudos Virtualizao


Virtualizao a tcnica que permite particionar um nico sistema computacional em vrios outros denominados mquinas virtuais!

Sistemas Distribudos Virtualizao - Introduo


70 e 80 mainframes com sistemas operacionais prprios necessidade de executar sw legado (carregavam todo o ambiente operacional). IBM oferecia uma VM portada para suas plataformas 90 - Convergncia dos SOs diminui uso de VMs 2k Aumento de poder computacional, sistemas distribudos (heterogeneidade) e onipresena de redes Ressuscitam VMs - TI Verde ;-)
VM uma camada de sw que oferece um ambiente completo similar a camada fsica!

Sistemas Distribudos Virtualizao - Motivao


a carga de processamento de um servidor no explora todo o potencial disponibilizado pelo processador. H um desperdcio de ciclos de processamento por investimento. A virtualizao surge como uma opo, ou seja, Proporcionar uso eficiente do HW!
A virtualizao proporciona um alto grau de portabilidade e de flexibilidade permitindo que vrias aplicaes, de sistemas operacionais diferentes, executem em um mesmo hardware.

Sistemas Distribudos Virtualizao - Motivao


Diminuio de mquinas em Data Centers =
Reduo de custos de infraestrutura fsica
como espao, energia eltrica, cabeamento, refrigerao, suporte e manuteno = TI Verde :-)

Virtualizao em desktops
Ambientes experimentais sem comprometer o sistema operacional original Desenvolver plataformas distribudas como Clusters

Sistemas Distribudos Virtualizao - Tipos


1. Aplicao de um SO em modo usurio
Mquina Virtual de Processo

2. Camada de software posicionada entre o hardware da mquina e o SO


Monitor de Mquina Virtual (VMM) ou hypervisor
2.1 Virtualizao total 2.2 Para-virtualizao

Obs.: Todas as VMs existentes provm interfaces de redes virtuais idnticas a suas similares reais, possuem end. MAC e podem ser liadas a switches e roteadores.

Sistemas Distribudos Virtualizao Conceitos Bsicos


SOs camada de sw inserida entre o hw e aplicaes dos usurios, cujo objetivo tornar a utilizao do computador, mais eficiente e conveniente
Eficiente maior retorno no investimento de hw
Ex.: multiprogramao

Conveniente esconde do usurio detalhes de hw


Ex.: arquivos
Processo - abstrao que representa um programa em execuo. Cada processo um ambiente de execuo isolado dos demais processos que executa sobre um processador lgico, isto , um processador virtual.

Sistemas Distribudos Virtualizao Conceitos Bsicos

Principio bsico de VMs A virtualizao consiste em estender ou substituir um recurso, ou uma interface, existente por um outro, de modo a imitar um comportamento.

Sistemas Distribudos Virtualizao Conceitos Bsicos


Processo (execuo acompanhada por PC e SP)
regio de texto
instrues do programa a serem executadas

dados
mantm todas as variveis globais, inicializadas ou no

pilha
endereo de retorno de chamadas de funo, para a passagem de parmetros, rea onde so armazenadas as variveis locais

heap
para a alocao dinmica de pores de memria

Sistemas Distribudos Virtualizao Conceitos Bsicos

Abstrao de um processo em um SO

Concluso: Processos = VM que executa nico programa

Sistemas Distribudos Virtualizao Conceitos Bsicos


Interface de um sistema de computao:
Instrues de mquina (privilegiadas)
Conjunto de Instrues de Mquina (ISA)

Instrues de mquina (no privilegiadas) e chamadas de sistema


Programas de usurios acessam hw indiretamente

Interface aplicativa de programao


Chamadas a funes de Bibliotecas (APIs) Baseado nisso, a implementao de VMs pode ser feita de dois modos:

Sistemas Distribudos Virtualizao Conceitos Bsicos

Interfaces genricas de um sistema de computao

Sistemas Distribudos Virtualizao Conceitos Bsicos


Modelos de VMs:
Maquina Virtual de Processo
Programa de aplicao que fornea um ambiente de execuo para outras aplicaes (Ex.: JVM) S existe enquanto este estiver executando

Monitor de Mquina Virtual (VMM) ou hypervisor


camada de SW entre o HW e o SO protegendo o acesso direto deste aos recursos fsicos da mquina est presente sempre que o computador estiver ligado (ex. VMware, XEN, Vbox)

Sistemas Distribudos Virtualizao Conceitos Bsicos


Tipos de mquinas virtuais e sua relao com sistemas hspede e hospedeiro.

Mquina Virtual de Processos

Monitor de Mquina Virtual

Hspede: processo ou sistema que executa sobre a VM Hospedeiro: ambiente sobre o qual o hspede executa

Sistemas Distribudos Virtualizao Suporte de Hardware


Propriedades necessrias para que um sistema computacional oferea de forma eficiente suporte a virtualizao:
Eficincia: todas instrues de mquina que no comprometem o funcionamento do sistema devem ser executadas diretamente no hardware sem interveno da mquina virtual. Controle de recursos: uma mquina virtual deve ter controle completo sobre os recursos virtualizados sendo estritamente proibido que um programa executando sobre a mquina virtual os acesse diretamente. Equivalncia: um programa executando sobre uma mquina virtual deve exibir um comportamento idntico quele apresentado caso a mquina virtual no existisse e o programa acessasse diretamente uma mquina fsica equivalente. Duas excees so consideradas:
Eventualmente, algumas instrues podem ter seu tempo de execuo aumentado. Pode haver problemas de conflito de acesso a recursos, os quais devem ser resolvidos de forma apropriada.

Sistemas Distribudos Virtualizao Suporte de Hardware


As trs propriedades motivaram a classificao do conjunto ISA em: Trs grupos de instrues:
Instrues privilegiadas:
Quando executadas por um programa em modo usurio causam excees (trap);

Instrues sensveis de controle:


Permitem a alterao de recursos do sistema;

Instrues sensveis comportamentais:


Onde o resultado ou comportamento dependem da configurao de recursos como, por exemplo, contedo de registradores internos ou modos de execuo do processador.

Dois Teoremas:

Sistemas Distribudos Virtualizao Suporte de Hardware


Dois Teoremas:
1 - Um VMM/Hypervisor pode ser implementado se as instrues sensveis de controle e comportamentais forem um subconjunto das instrues privilegiadas.
qualquer instruo que possa afetar o funcionamento da VMM deve passar por seu controle.

2 - Possibilidade de um VMM executar uma instncia de si mesma.

Sistemas Distribudos Virtualizao Suporte de HW x86


4 Modos de Operao (Anis de Proteo 0-3) SO convencionais s usam 2 modos:
Ring 0 > privilgios de execuo, usado pelo SO Ring 3 < privilgio de execuo, usado pelos processos de usurio. Problema: A arquitetura x86, em especial o Pentium, possui dezessete instrues no privilegiadas que so sensveis, ou seja, o teorema 1 violado.

Sistemas Distribudos Virtualizao Suporte de HW x86


VMM tratam diferenciadamente as instrues consideradas sensveis!
Preo o desempenho!

Duas tcnicas:
Instrues sensveis so identificadas em tempo de execuo e geram um desvio para a VMM trat-las adequadamente. Programa a ser executado na VMM modificado para que as instrues sensveis sejam substitudas para chamadas a VMM = Para-virtualizao

Sistemas Distribudos Virtualizao Suporte de HW x86


Outras Solues: Fabricantes de processadores desenvolvem extenses para a arquitetura x86 para suportarem a virtualizao.
As extenses da AMD, denominada de AMD-V (AMDVirtualization), codinome Pacfica, se aplica s arquiteturas x86 de 64 bits como o Athon, Turion, Phenom e as linhas mais recentes. A Intel apresenta suas extenses para as arquiteturas x86 de 32 e 64 bits. Essas extenses so conhecidas por IVT (Intel Virtualization Technology) ou pelo seu codinome, Vanderpool.

Sistemas Distribudos Virtualizao Suporte de HW x86


As solues da AMD e da Intel so incompatveis, AMD implementa funes especiais no processador que so executadas por um hypervisor e que podem controlar, em seu nome, se determinados acessos de um sistema hspede so permitidos. Intel (virtual machines extensions) anis de proteo com dois novos modos:
root e no-root. Controlados pelo hypervisor que pode transferir a execuo de um SO hspede para o modo noroot no qual instrues do Ring 0 so executadas sem risco para o sistema.

Sistemas Distribudos Virtualizao Suporte de HW x86


Consequncia importante dessa discusso de suporte de hardware que os softwares que implementam tcnicas de virtualizao podem apresentar problemas de compatibilidade, ou de desempenho, quando executados em determinados processadores.

Sistemas Distribudos Virtualizao Total


A virtualizao total: Prove uma rplica (virtual) do hw subjacente de tal forma que o SO e as aplicaes podem executar como se tivessem executando diretamente no hw original.
Vantagem: SO hspede no precisa ser modificado para executar sobre a VMM. Desvantagens:
Dificuldade de implementar uma VM dada a diversidade de dispositivos Instrues testadas no sistema hospede devem ser testadas pelo VMM para saber se so sensveis =>> custo de processamento Necessidade de converter espao de endereamento do hospede para real;

Sistemas Distribudos Paravirtualizao


A paravirtualizao uma abordagem alternativa que surge como forma de contornar as desvantagens da virtualizao total. Nessa abordagem, o sistema hspede modificado para chamar o VMM sempre que for executada uma instruo ou ao considerada sensvel.
O teste por instruo no mais necessrio. Os dispositivos de hw so acessados por drivers do prprio VMM.

Sistemas Distribudos Comparativo


Virtualizao Paravirtualizao

35

Sistemas Distribudos Virtualizao e Paravirtualizao


A virtualizao total permite que um sistema hspede execute em uma VMM sem necessitar nenhuma alterao, Com a paravirtualizao o sistema hspede precisa ser modificado para enxergar a VMM. A paravirtualizao explora de maneira apropriada os recursos disponveis pelo hardware real da mquina e apresenta um melhor desempenho que a virtualizao total. Entretanto, face o atual suporte de hardware virtualizao presente nos processadores Intel e AMD, a virtualizao total e a paravirtualizao tm apresentado desempenhos semelhantes

Sistemas Distribudos Trabalho 01


Explique qual a funo de um middleware em um sistema distribudo. Escolha um middleware disponvel e comente sobre sua estrutura (elementos), funcionalidades e tecnologias (hardware, linguagens etc) envolvidas. No esquea da bibliografia.
Formato Artigo de 4 pginas; Trabalho individual! Recomenda-se no copiar texto pronto da Internet. Cada trabalho deve sintetizar suas respostas a partir do material consultado/encontrado.
37

Sistemas Distribudos Trabalho 02


Trabalho terico sobre hypervisor.
Desenvolver em grupos de 1, 2 ou no mximo de 3 alunos: Trabalho em 2 etapas: 1 etapa: Estudo sobre o hypervisor: - Escolher conforme o nmero de integrantes do grupoos VMMs: VMWare, Xen (Citrix), Hyper-V (MS), Virtuoso, VirtualBox (Oracle) e Enterprise Virtualization (RedRat) e estudar suas caractersticas. 2 etapa: Elaborar relatrio tcnico (montar uma artigo no modelo SBC) sobre o hypervisor escolhido. No relatrio deve constar Introduo, histrico, informaes de como feito o dimensionamento de CPUs (limite do hw), Sistemas Operacionais Suportados e roteiro para instalao;
38

You might also like