Introdução à Computação em Nuvem

Tamanho: px
Começar a partir da página:

Download "Introdução à Computação em Nuvem"

Transcrição

1 Universidade Estadual de Campinas Faculdade de Engenharia Elétrica e de Computação Departamento de Computação e Automação Industrial Introdução à Computação em Nuvem Lucio Agostinho Rocha Campinas, SP Junho, 2013

2 2 1 Introdução Atualmente é comum que muitas aplicações sejam acessadas pela Internet e mantidas em datacenters. Essas aplicações são oferecidas de forma transparente para seus usuários, ou seja, com pouca (ou nenhuma) referência à infraestrutura física que as mantêm. A Computação em Nuvem (Cloud Computing) surge como um modelo de computação para acessar serviços oferecidos sob demanda, com transparência de localidade e provisão dinâmica de recursos (servidores, armazenamento, aplicações e quaisquer outros serviços) [1] [2]. Vaquero et al. [3] definem a Computação em Nuvem como: Um conjunto de recursos virtuais facilmente usáveis e acessíveis tais como hardware, plataformas de desenvolvimento e serviços. Estes recursos podem ser dinamicamente reconfigurados para se ajustarem a uma carga variável, permitindo a otimização do uso dos recursos. Este conjunto de recursos é tipicamente explorado através de um modelo pay-per-use com garantias oferecidas pelo provedor através de SLAs. (Tradução do autor) A Computação em Nuvem ganhou mais destaque quando passou a ser utilizada como um modelo empresarial. Existe uma grande diversidade de aplicações que podem executar na nuvem, cada uma delas com os mais diferentes requisitos. Em função disso, existe o desafio por parte dos provedores de serviços em atender aos requisitos desse conjunto diverso de aplicações. Nesse modelo, uma fatia do poder computacional da rede é oferecida, reduzindo os custos para fornecer uma infraestrutura interna para prover os serviços. Esse modelo também baseia-se na alocação de recursos apenas pelo período de utilização dos serviços contratados. Isso permite que as empresas façam cotações dinâmicas sobre os períodos de melhor custo x benefício para uso de tais serviços. Como exemplo, pode ser economicamente mais vantajosa a transferência de uma grande quantidade dados quando menos usuários utilizarem a rede do provedor de serviços. O NIST (National Institute of Standards and Technology) [4] é uma agência governamental do Departamento de Comércio dos Estados Unidos, que tem o objetivo de promover padrões de TIC com o objetivo de ampliar a segurança da informação. De acordo com a especificação do NIST [5], as seguintes características podem ser enumeradas: 1. Oferta de serviços sob demanda: alocação dinâmica dos serviços requisitados (resource pooling), sem interação humana com o provedor dos serviços; 2. Amplo acesso aos recursos computacionais: por meio de diversos protocolos padronizados, para uma grande variedade de dispositivos como computadores pessoais, laptops, dispositivos móveis, tablets, entre outros; 3. Resource Pooling: por meio de um modelo multi-locatário, recursos computacionais são oferecidos para múltiplos clientes. Existe uma abstração da localidade onde os serviços são oferecidos, com relação aos servidores, datacenters, ou mesmo região geográfica. Os recursos oferecidos incluem processamento de alto desempenho, armazenagem, largura de banda, memória, entre outros. 4. Elasticidade: os serviços devem ser alocados e desalocados rapidamente, apenas no decorrer da requisição do usuário. Para este, tem-se a ilusão de uma gama infinita de recursos disponíveis;

3 1 Introdução 3 5. Medição: a infraestrutura deve oferecer mecanismos para dinamicamente otimizar a disponibilidade de recursos com o uso de mecanismos de medição, gerência e controle do uso dos recursos computacionais oferecidos. Outras características comuns de ambientes que utilizam Computação em Nuvem [2] são: Escalabilidade: o aumento do número de usuários não implica em redução do desempenho da nuvem, ou seja, mais recursos são alocados internamente, ou de domínios parceiros para suprir a demanda e manter o desempenho. A oferta de recursos sob demanda viabiliza a oferta de serviços para um número maior de usuários. Os recursos serão alocados apenas pelo período contratado, reduzindo a subutilização da rede de serviços. Essa característica implica na elasticidade da oferta de recursos para muitos usuários concorrentes; Modelo pay-per-use: cobrança proporcional ao uso dos recursos. A Computação em Nuvem é um exemplo de utility computing (computação vista como uma utilidade) porque a oferta desses serviços é similar a outros tradicionais, onde o usuário paga pelo fornecimento de eletricidade, água, gás natural ou redes de telefonia; Virtualização: O usuário tem a ilusão de que interage com os recursos de um host real quando, na verdade, utiliza um ambiente abstrato que simula o acesso físico do host no qual estão hospedados. Na Computação em Nuvem um provedor de serviços pode participar de um ou mais modelos para a oferta de serviços em nuvem. Ainda assim, a administração do domínio é responsável por controlar a infraestrutura, sistema operacional, servidores, operações de persistência, e demais requisitos para a oferta de serviços para uma grande quantidade de usuários concorrentes. Os modelos para prestação de serviços em nuvem são os seguintes [6] [4]: IaaS (Infrastructure as a Service): destaca a importância da infraestrutura na provisão de serviços. O provedor é capaz de oferecer uma infraestrutura de armazenagem, processamento e demais recursos de hardware e software de maneira transparente para o usuário. O aluguel de máquinas virtuais de acordo com os requisitos do usuário quanto a CPU, memória, espaço em disco e largura de banda, é um exemplo de serviço do tipo IaaS. Exemplo de provedores: Amazon EC2 [7] e FlexiScale [8]; PaaS (Platform as a Service): destaca a importância do framework para o desenvolvimento de aplicações na nuvem. O usuário é capaz de desenvolver suas próprias aplicações, respeitando o modelo de desenvolvimento, comunicação, armazenagem, linguagens de programação e demais serviços oferecidos pelo framework da nuvem. Exemplo de provedores: Ning [9], BungeeLabs [10] e Microsoft Windows Azure Platform [11]; SaaS (Software as a Service): O provedor de serviços habilita a execução de aplicações para uso exclusivo do cliente, ou aplicações para uso do cliente fornecidas pelo próprio provedor ou terceiros, tais como aplicativos de empresariais, grupos de discussão, ferramentas para edição de sites e demais aplicações que são compartilhadas por um grande número de usuários, tais como formulários Web, ferramentas de suporte (Help Desk), workflows empresariais, entre outros. Exemplo de provedores: Zoho [12], Salesforce [13], Google Apps [14] e Facebook [15].

4 4 A infraestrutura da nuvem é oferecida em diversos níveis de abrangência, ou modelos de disponibilidade, de acordo com as finalidades da organização e de seus usuários [6] [4]: Nuvem Privada: centrada no domínio de uma organização. A motivação é não expôr publicamente interfaces para interação com serviços privados do domínio, mas sim fornecer acesso apenas para usuários e administradores que façam parte do domínio em questão; Nuvem Pública: disponível para uso público em geral, com interfaces públicas acessíveis pela Internet; Nuvem Comunitária: ambientes onde os participantes de uma comunidade específica compartilham de uma infraestrutura com aspectos comuns (por exemplo, relativo à segurança, padrões de comunicação, interfaces, etc.). Essa infraestrutura possui uma escala menor do que a nuvem pública, porém maior do que uma nuvem privada; Nuvem Híbrida: uma combinação de infraestruturas com modelos distintos (pública, privada, comunitária), onde cada infraestrutura se mantém independente das demais, porém compartilham serviços entre si, e têm a preocupação quanto à portabilidade das aplicações que executam nos diferentes domínios. A infraestrutura de rede é fundamental para aplicações que executam na nuvem. Na Computação em Nuvem cria-se um ambiente para suportar o desenvolvimento e a disponibilização de aplicações na Internet. Do ponto de visto do usuário, prioriza-se o esforço para a criação e uso de aplicações, mais do que a configuração e a atualização da infraestrutura física ou do conjunto de frameworks de suporte ao desenvolvimento. 2 Virtualização Em essência, a virtualização consiste em imitar um comportamento, seja por extensão ou substituição de um recurso por outro [16]. A virtualização também é definida como um sistema ou um método de dividir os recursos computacionais em múltiplos ambientes isolados [17]. O conceito de virtualização remonta à virtualização de recursos em sistemas operacionais. Como exemplo, soluções de alto nível como interfaces gráficas, bibliotecas e APIs são exemplos de recursos de software que tornam transparente para o usuário o acesso aos recursos de hardware, em especial, o acesso aos periféricos de entrada e saída, ou seja, cria-se a ilusão no sistema operacional de que se tem a interação direta com os recursos de hardware. Diz-se também que a virtualização é uma metodologia para dividir os recursos de um computador em múltiplos ambientes de execução conhecidos como máquinas virtuais, aplicando conceitos de particionamento, time-sharing, simulação completa ou parcial de máquina, emulação, QoS, entre outros [16]. Portanto, a virtualização é uma técnica para ocultar características físicas de recursos computacionais, da forma na qual os sistemas, aplicações e end users interagem com esses recursos. A virtualização remonta às décadas de 60 e 70, com a introdução da linguagem de programação Java e o uso comum de mainframes na época [16]. Com o uso de máquinas virtuais era possível executar e migrar aplicações legadas entre plataformas distintas, desde que houvesse uma versão da

5 2 Virtualização 5 máquina virtual para a plataforma alvo. A principal motivação era ampliar e melhorar a utilização e o compartilhamento de recursos nos mainframes. Com a redução do custo do hardware em meados da década de 80, ocorreu uma mudança do foco de processamento centralizado em mainframes para o processamento distribuído em microcomputadores. O modelo cliente-servidor foi estabelecido para a computação distribuída, reduzindo a necessidade da virtualização para a integração de recursos computacionais. A redução do custo de aquisição do hardware e do compartilhamento de informações fizeram a virtualização entrar em hibernação por alguns anos [18]. Apenas em meados da década de 90, com o aumento do poder de processamento do hardware e dos computadores pessoais (PCs), a virtualização voltou a ganhar destaque com produtos como o VMware [19], UML (User Mode Linux) [20], Xen [21], KVM (Kernel-based Virtual Machine) [22] e VirtualBox [23]. De certa forma, esses produtos trazem o conceito de virtualização como uma alternativa para executar diversos sistemas operacionais sem a necessidade de se aumentar proporcionalmente o número de hosts físicos que os mantêm. Isso implica em redução dos custos relativos à aquisição de hardware, infraestrutura física, consumo de energia, refrigeração, suporte e manutenção de vários hosts. A virtualização é recomendada para consolidar múltiplos servidores em um mesmo host, isolar diferentes aplicações de usuários em um mesmo host, executar/depurar softwares e sistemas operacionais construídos para uma arquitetura em outra, além de simplificar a instalação de infraestruturas de software em diferentes domínios, e testar aplicativos em hardwares não existentes. O sistema operacional que executa o software de virtualização é conhecido como Host. O sistema operacional virtualizado é conhecido como Guest. Múltiplos Guests podem executar no mesmo Host, sem interferência entre eles. O kernel do Host fornece a API para suportar múltiplos espaços do usuário, conhecidos como Virtual Environments, na VM Guest. Cada Guest possui a virtualização de arquivos, bibliotecas de sistema, usuários e grupos, árvore de processos (com PIDS virtualizados), rede virtualizada (Guests possuem seus próprios IP, tabelas de roteamento, e demais atributos de rede próprios). Com o crescente avanço da virtualização e do poder de processamento do hardware, fabricantes de processadores como a AMD [24] e a Intel [25] passaram a incluir no hardware de suas CPUs o suporte para a virtualização, com a finalidade de aumentar o desempenho das aplicações virtualizadas. A extensão nos processadores Intel recebe o nome de Intel VT (ou Vanderpool Technology). A AMD, por sua vez, desenvolveu a extensão AMD-V (ou Pacifica), também conhecida como AMD SVM (Secure Virtual Machine). O desempenho das aplicações virtualizadas é limitado pelo hardware que mantêm as máquinas virtuais, pela rede de comunicação e pelos mecanismos de emulação utilizados pelo software que gerencia essas aplicações. Os tipos de implementação mais comuns são [26]: Máquina virtual de processo: esse tipo de máquina virtual é um programa que executa em modo usuário (user mode) do sistema operacional. Em arquitetura de computadores [16] o conjunto de instruções geralmente é dividido em pelo menos duas categorias: instruções privilegiadas e não-privilegiadas. As instruções privilegiadas são reservadas para que programas com alto privilégio, como o sistema operacional, por exemplo, executem a manipulação de recursos de hardware (processador, memória principal, dispositivos de armazenamento, registradores de propósito especial, entre outros), entrada/saída e interrupções. Por outro lado, os programas de baixo privilégio podem executar apenas instruções de máquina não-privilegiadas. A arquitetura

6 6 x86 possui quatro níveis de privilégio, conhecidos como rings, numerados de 0 a 3, com o ring 0 ocupando o nível mais alto de prioridade. O sistema operacional executa no ring 0, em modo supervisor (supervisor mode) em ambientes não virtualizados. O ambiente da máquina virtual fornece instruções abstratas que precisam ser interpretadas para executar as instruções de máquina não-privilegiadas. No processo de interpretação ocorre a busca, decodificação e análise de instrução por instrução, antes de cada uma delas ser executada no sistema hospedeiro. Como exemplo, a JVM (Java Virtual Machine) é um exemplo de máquina virtual de processo. A Microsoft CLI (Common Language Infrastructure) [27], base do framework.net, é um outro exemplo de implementação de virtualização que possibilita o uso de diferentes linguagens de alto nível sem a necessidades de serem reescritas para a plataforma em que executam. O código compilado não corresponde a nenhuma arquitetura real específica, mas sim a uma máquina virtual definida de acordo com um ambiente que utiliza seu compilador e uma linguagem de alto nível. No entanto, é necessário que exista uma implementação da máquina virtual para cada arquitetura real sob a qual essa máquina executa. Virtual Appliance: são máquinas virtuais que possuem um conjunto de softwares (sistema operacional, base de dados, aplicativos, configuração de rede, entre outros) pré-configurados e prontos para o uso; Hypervisor 1, Monitor de Máquina Virtual (VMM (Virtual Machine Monitor)) ou Máquina Virtual de Sistema: uma camada de software entre o hardware e o sistema operacional da máquina virtual. Nessa abordagem o acesso aos recursos de hardware é protegido pela camada de software que mantém uma ou mais máquinas virtuais. Em razão disso, o hypervisor deve ser instanciado sempre que a máquina virtual for inicializada. O sistema operacional que executa nessas máquinas virtuais utiliza as instruções não-privilegiadas oferecidas pelo hypervisor. O hypervisor fornece os recursos de software para compartilhar a CPU com múltiplos sistemas operacionais [28]. Portanto, o hypervisor executa em supervisor mode e controla o acesso aos recursos compartilhados pelas máquinas virtuais. O escalonamento de recursos é feito de forma similar ao escalonamento de processos pelo sistema operacional, com a alocação de ciclos do processador para cada VM. Como uma VM executa em user mode, caso seja disparada uma intrução privilegiada na VM, o comportamento esperado pelo sistema operacional seria o de disparar uma interrupção, para um posterior tratamento por uma rotina de manipulação da interrupção, rotina essa que faz parte do sistema operacional. No entanto, o hypervisor precisa manipular essa interrupção, emulando a execução da instrução privilegiada. Hypervisors que executam diretamente sobre o hardware são conhecidos como tipo 1 (por exemplo, Xen); Hypervisors que precisam executar sobre um sistema operacional são chamados tipo 2 (por exemplo, VirtualBox). O hypervisor também é responsável por gerenciar a emulação de dispositivos, tais como processador, memória RAM, disco rígido, interfaces de entrada/saída tais como drive de CD/DVD, mouse, teclado, vídeo (quantida de bytes para a memória de vídeo), interfaces de rede, entre outros. 1 Nota: foi mantida a escrita original da palavra em inglês, por ser a mais usual. O plural também foi mantido de acordo com o original, em inglês (hypervisors).

7 2 Virtualização 7 As CPUs modernas suportam múltiplos níveis de privilégios de código, conhecidos como ring levels [29]. Apenas o código executando no nível de privilégio mais alto pode executar instruções privilegiadas. Os processadores Intel possuem 4 ring levels: 0 para o modo supervisor, utilizado pelo kernel do sistema operacional; 1 e 2 não são, a priori, utilizados pelo sistema operacional; 3 para aplicações (por exemplo, processos e threads) executadas no nível de usuário. Geralmente, o hypervisor executa no ring level 0, e o sistema operacional do Guest executa no ring level 1 (isso porque apenas as instruções que executam no nivel 0 podem executar instruções privilegiadas. Como as VMs geram instruções que não estão nesse nível, o truque é encaminhá-las para o hypervisor, que se encontra no nível 0 com mais alta prioridade). A execução de todo o sistema operacional Guest em um ring maior do que o 0 é conhecido como ring de-privileging. Essa técnica implica em algumas particularidades para o correto tratamento de instruções, com maiores detalhes em [30]. Como qualquer outra tecnologia, a virtualização possui uma nomenclatura própria para distinguir os seus componentes: Máquina Virtual: é uma camada de software que simula um computador real (físico) e que é capaz de executar instruções como se fosse a máquina física. De acordo com [31], existem dois tipos para essa VM: 1) Máquina virtual de sistema: possui uma plataforma completa de sistema que suporta a execução de um sistema operacional. 2) Máquina virtual de processo: fornece abstrações e recursos para executar um único processo. Computador Host (Hospedeiro): é aquele que utiliza a virtualização de software para executar máquinas virtuais; Sistema Operacional Hóspede (Guest Operating System) é um sistema operacional que executa em uma máquina virtual. A conexão em rede entre máquinas virtuais é baseada em interfaces virtuais de rede, com a associação de um endereço MAC (Medium Access Control) específico para cada uma delas. Por outro lado, a solução tipicamente utilizada para a comunicação em rede entre o host hospedeiro e as máquinas virtuais é a configuração da interface de rede física do hospedeiro em modo promíscuo, criandose uma bridge para multiplexar o seu uso entre as diversas máquinas virtuais que se conectam a ela. Uma bridge atua na camada 2 do modelo OSI, correspondendo à camada de enlace do modelo TCP/IP (Transmission Control Protocol/Internet Protocol). Com uma configuração de bridge não são feitas considerações relativas ao endereço de rede na qual a interface está configurada. Para o encaminhamento de pacotes são utilizadas técnicas de flooding e de verificação do endereço MAC. Quando o dispositivo destino é localizado seu endereço MAC é guardado em uma tabela de MAC associada à bridge, para posterior roteamento. Em sistemas operacionais, um processo é definido como a instância de um programa (software) em execução [32]. Cada processo, quando instanciado, executa sobre um processador lógico (virtual). O sistema operacional utiliza escalonadores para alternar entre os processadores lógicos sobre

8 8 um mesmo processador físico, criando-se a ilusão de paralelismo por meio de chaveamento. Cada processo possui um espaço de endereçamento lógico formado por dados, texto, heap e pilha. Em síntese, a região de dados armazena as variáveis globais; a região de texto armazena as instruções de execução; a região de heap realiza a alocação dinâmica de memória; finalmente, a região de pilha mantém o endereço de retorno de chamadas de função, mantém as variáveis locais das funções, além de servir para a passagem de parâmetros. Os registradores Program Counter(PC) e Stack Pointer(SP) são utilizados para a execução de um processo. O primeiro informa a próxima instrução a ser executada enquanto que, o segundo, realiza funções de pilha, ou seja, mantém o endereço de retorno da função executada, além de suas variáveis locais e parâmetros. No chaveamento de contexto esses registradores participam, junto com todos os outros registradores da CPU, do escalonamento de processos, criando-se a ilusão de que vários processos são executados ao mesmo tempo. Nesse âmbito, um processo pode ser visto como uma máquina virtual de baixo nível que reúne todo um conjunto de software e hardware para a sua execução [16]. A abordagem da virtualização é bem mais ampla do que a simples execução de múltiplas instâncias de sistemas operacionais em máquinas virtuais. Na virtualização da infraestrutura da rede as interfaces de rede virtuais possuem endereços MAC e IP específicos, com suporte aos meios de encaminhamento de pacotes para interfaces reais, tais como broadcast, unicast e multicast, este último sendo importante para aplicações do tipo P2P e difusão de áudio e vídeo. Dessa forma é possível prover a interconexão das interfaces virtuais com a interface física do host hospedeiro e com outros dispositivos físicos tais como roteadores e switches, além do tratamento de QoS no tráfego dos pacotes oriundos desses dispositivos virtuais na rede. A base para a comunicação em redes virtuais é baseada nos drivers TUN (network tunnel) para o roteamento de pacotes e no driver TAP (network tap) para a criação de bridges [33]. Os drivers TAP emulam a camada 2 (envio/recepção de Ethernet frames na camada de enlace), e os drivers TUN emulam a camada 3 (envio/recepção de pacotes IP na camada de rede) da pilha de protocolos TCP/IP, gerenciando a recepção e a transmissão dos pacotes entre os dispositivos virtuais e os dispositivos físicos na rede. Por outro lado, os dispositivos de interconexão, tais como roteadores e switches são emulados no processo de virtualização. Para administradores de rede é comum pensar em alternativas para aumentar a taxa de utilização de seus servidores, mantendo diversas máquinas virtuais em uma mesma máquina física. Essa alternativa é conhecida como consolidação de servidores e tem o objetivo de aumentar a utilização do hardware com a consequente redução da gerência de diversos hosts (ou seja, redução dos custos operacionais), redução do consumo de energia, redução de espaço físico, além da criação de ambientes mais flexíveis com a oferta de serviços para diversos sistemas operacionais. A seguir são enumeradas as principais técnicas de virtualização para a criação de máquinas virtuais. A descrição dessas técnicas no modelos em camadas tem o objetivo de destacar o nível relativo ao ring no qual a VM se encontra, e as setas duplas as interfaces adicionais necessárias e que devem ser fornecidas pela solução de virtualização que implementa o modelo. Virtualização total (ou completa)[29]: uma camada de software fornece uma abstração genérica do hardware, sem necessidade de modificar o sistema operacional que executa na máquina virtual. O controle de acesso aos recursos físicos do sistema é gerenciado pelo hypervisor, bem como a conversão para o sistema físico dos diferentes mecanismos de acesso à disco, memória, periféricos, entre outros, realizados pelo sistema operacional virtual. A Fig. 1 mostra o modelo

9 2 Virtualização 9 em camadas desse tipo de virtualização. Fig. 1: Modelo em Rings da Virtualização Completa. Paravirtualização: De acordo com [34] a paravirtualização busca remover todas as características da arquitetura de suporte (como a x86, por exemplo) que sejam difíceis de virtualizar, e substitui-las com operações que se comunicam diretamente com a camada de virtualização. Segundo [29], esse modelo de virtualização envolve modificar o núcleo do sistema operacional Guest para que ele se comunique diretamente com o hypervisor, sem a tradução binária de todas as instruções, como normalmente ocorre na virtualização completa. O hypervisor, por sua vez, também fornece interfaces para outras operações críticas do núcleo do sistema operacional, tais como tratamento de interrupções e gerenciamento de memória. Segundo [35], o sistema operacional Guest recebe modificações para interagir diretamente com os drivers do hypervisor na execução de instruções de máquina privilegiadas, ou seja, instruções que possam alterar o estado do sistema. Outro ponto é que os dispositivos de hardware são acessado por drivers da própria VM, sem o uso de drivers genéricos que inibam a capacidade total do dispositivo. Com os atuais avanços no suporte à virtualização em hardware por parte dos fabricantes de CPUs (principalmente Intel e AMD) a paravirtualização tem-se mostrado tão eficiente quanto a virtualização total [16]. A paravirtualização também abrange de forma mais adequada os recursos disponíveis no hardware, ao invés da abstração genérica oferecida pela virtualização total. O exemplo mais comum é o do Xen, que é um exemplo de virtualização do tipo 1 (ou virtualização nativa) [34]. O hypervisor Xen executa no topo de um sistema operacional Host. As VMs em Xen são conhecidas como domínios. Quando o sistema inicia, o hypervisor Xen inicia o domínio 0 (zero), que tem acesso aos dispositivos de forma privilegiada. As máquinas

10 10 Fig. 2: Modelo de Paravirtualização com Xen (baseado em [34]. Fig. 3: Modelo em Rings da Paravirtualização. virtuais de níveis de domínio superiores a zero acessam os dispositivos por meio da máquina virtual do domínio 0. Em termos práticos, Xen é configurado como um patch ao kernel de distribuições Linux convencionais. Cada VM se torna um processo do sistema operacional. O sistema operacional é responsável por controlar e gerenciar as funções que o domínio 0 realiza. As versões mais recentes do Xen possuem drivers de dispositivos nativos que foram retirados do hypervisor e mantidos no domínio 0, de forma a se ter o acesso mais próximo do hardware, como mostra a Fig. 2. UML é outro exemplo de sistema que utiliza a paravirtualização. A Fig. 3 mostra o modelo em camadas desse tipo de virtualização. Suporte à virtualização de hardware (Virtualização Assistida por Hardware) [29]: o hardware fornece recursos voltados especificamente para virtualização. As tecnologias AMD-V e Intel

11 2 Virtualização 11 VT suportam a virtualização assistida por hardware para os processadores da arquitetura x86. O hypervisor encontra-se no ring level 0, mas no modo root mode (nas arquiteturas Intel, vmx root). O kernel do sistema operacional virtualizado das VMs também se encontra no ring level 0, mas no modo non-root mode (nas arquiteturas Intel, vmx non-root). O resultado é um ganho de desempenho, pois o software do hypervisor tem controle mais próximo ao hardware da CPU [36]. A Fig. 4 mostra o modelo em camadas desse tipo de virtualização. Essa virtualização reduz a necessidade de utilizar sistemas paravirtualizados para prover sistemas operacionais proprietários. Fig. 4: Modelo em Rings da Virtualização Assistida por Hardware. Virtualização no nível do sistema operacional (Containers) [37] 2 : execução de múltiplos ambientes de execução isolados e que compartilham um mesmo núcleo de sistema operacional. Obtém-se um desempenho próximo ao nativo e características de gerência dinâmica de recursos são oferecidas como vantagens mas, por outro lado, não permite que diferentes núcleos sejam executados por diferentes sistema operacionais ao mesmo tempo. Exemplo: FreeBSD Jail [38], Solaris Zones/Containers [39], Linux-VServer [40], OpenVZ [17] e Virtuozzo [41]. A Fig. 5 mostra o modelo em camadas desse tipo de virtualização. 2 Nota: foi mantida a escrita original da palavra em inglês.

12 12 Fig. 5: Modelo em Rings da Virtualização em Containers. Em síntese, a emulação utiliza software para simular o hardware para o sistema operacional Guest que executa no software. Como se pode notar, essa alternativa possui limitações para a tradução dinâmica de código, além de oferecer um baixo desempenho. Por outro lado, a virtualização nativa, ou virtualização completa, é quando um hypervisor tipo 2 é utilizado para permitir o acesso parcial ao hardware, ou para simular um subconjunto de recursos do hardware, com a finalidade de permitir a execução completa de um sistema operacional. Na paravirtualização, o sistema operacional executa no hypervisor, o que confere maior desempenho. Microsoft Hyper-V e VMware ESX Server também são exemplos de sistemas que utilizam a paravirtualização [42] [43]. Apesar de não haver uma definição consensual [44], no contexto da virtualização é importante aprofundar a distinção entre termos emulação, simulação e virtualização. De acordo com [45] [42], esses termos são definidos como segue: Emulação: é a reprodução do comportamento de um sistema em outro. Além disso, é um termo utilizado para descrever a operação de um software desenvolvido para simular um determinado hardware, como por exemplo um processador, disco rígido, interfaces de rede, entre outros, diferentes dos que estão executando o emulador [46]. Como exemplo, o software DOSBox [47] é capaz de emular o sistema operacional DOS (Disk Operating System) em sistemas operacionais Linux, permitindo a execução de programas nativos de um sistema operacional em outro. Outro exemplo é o emulador QEMU (Open Source Processor Emulator) [48]. Quando executado como emulador ele pode executar programas e sistemas operacionais feitos para uma arquite-

13 2 Virtualização 13 tura (por exemplo, ARM) em outra (por exemplo, PC). Isso é feito com a tradução dinâmica de código. 3 Outro exemplo de emulador é o Bochs [49] que emula todas as instruções de processadores x86, incluindo dispositivos de entrada/saída e memória. Portanto, um emulador é capaz de executar os mesmos programas como se eles executassem no sistema original, produzindo as mesmas saídas para as mesmas entradas geradas em ambos os sistemas. A emulação torna possível executar qualquer sistema operacional não-modificado, desde que o sistema de emulação suporte o sistema a ser emulado. A principal desvantagem da emulação é o seu baixo desempenho comparado com a execução nativa do sistema operacional em hardware próprio. Simulação: é uma imitação de algum sistema real. Também pode ser informalmente definido como um tipo de emulação mais precisa. Segundo [16], um simulador é um programa que implementa um modelo de sistema recebendo parâmetros de entrada e condições iniciais de contorno e serve para auxiliar na predição e análise do comportamento do sistema simulado. Os simuladores MobileSim [50] e Stage [51] são exemplos de programas que imitam o comportamento de robôs móveis, reproduzindo com precisão as ações de deslocamento no ambiente, leitura de sensores tais como sonares e laser, além de oferecerem um ambiente adequado para testes e análise de programas criados para interagir com robôs reais; Virtualização: em termos de computação, é a emulação de hardware em uma plataforma de software. Com a emulação de hardware ocorre a simulação de hardware via software. No entanto, ao contrário da emulação, as instruções são executadas no hardware real da máquina física, ao contrário do que ocorre na emulação onde as instruções são executadas em um processador emulado [46]. Como exemplo, diversos sistemas operacionais podem ser virtualizados em um mesmo host físico. Existem muitos tipos de virtualização para diferentes propósitos: Software: seja para manter múliplos ambientes virtualizados no mesmo host físico com máquinas virtuais, e/ou para reservar virtual environments distintos apenas para a execução de aplicações [52]. Mobile: permite executar sismultaneamente múltiplos sistemas operacionais, ou máquinas virtuais, em dispositivos móveis. Esse tipo de virtualização é mais exigente quanto à capacidade de processamento e quanto aos requisitos de hardware do dispositivo móvel. Como exemplo, o iphone [53] suporta esse tipo de virtualização. Desktop: exibição de desktops remotos, seja de forma textual (por exemplo, Web SSH) ou gráfica [54] [55]. Network: combinação de recursos de software e hardware de rede em uma entidade conhecida como rede virtual. São admitidos espaços de endereçamento de rede virtualizados, com regras de firewall, tabelas de roteamento, endereçamento IP, entre outros requisitos de rede associados às interfaces de rede virtualizadas. A infraestruturas de interconexão da rede também pode ser virtualizada com software especializado, aproveitamento as características de software para a configuração lógica de dispositivos (por exemplo, VLANs em switchs). 3 Nota: ARM é uma arquitetura com um conjunto reduzido de instruções de 32-bits RISC (Reduced Instruction Set Computer) desenvolvida pela ARM Holdings.

14 14 A virtualização também é empregada para gerar áereas virtuais (virtual layers) no host, de forma que aplicações podem ser instaladas nessas áreas, ativadas e desativadas, reduzindo os conflitos de possuir diferentes versões do mesmo programa instalados na mesma máquina. Como exemplo pode ser citado o software Cameyo [52], que é um produto para virtualização de aplicações para plataformas Microsoft Windows. 3 Considerações sobre virtualização A seguir são enumeradas algumas considerações quanto ao uso da virtualização: Segurança: as máquinas virtuais são isoladas entre si, o que garante que a falha de um serviço em uma delas não comprometa as demais. No entanto, o uso do hypervisor é um ponto crítico pois uma falha nesse setor pode comprometer todas as instâncias de máquinas virtuais ativas. Por outro lado, o uso de softwares atualizados auxiliado pela gerência rigorosa dessa camada de software propicia a oferta de um ambiente tão seguro e confiável quanto se cada sistema operacional e/ou serviço fosse executada exclusivamente em um único host servidor; Flexibilidade: a consolidação de servidores traz como vantagem direta a oferta de serviços para diversos sistemas operacionais. Diversas ferramentas open source e comerciais adicionam elementos para suporte à migração de máquinas virtuais, estatísticas e contabilidade de uso, gerência do sistema, balanceamento de carga, controle de acesso, entre outros; Outra característica interessante é a opção de salvar um snapshot do estado atual da máquina, para posterior reinício do ambiente. Custo: De acordo com [18], a redução dos custos de TI pode variar de 29% a 64% no que se refere à economia de espaço físico, energia, estrutura de refrigeração, a gerência de múltiplas máquinas virtuais Com relação à paravirtualização não se torna prático modificar sistemas operacionais proprietários ou mesmo antigos. Nesses casos, o hypervisor deve confiar na virtualização de hardware. Em ambientes onde existe a necessidade de manter diversos sistemas operacionais, o uso de hypervisors é considerado uma alternativa viável, porém é necessário manter um controle do ciclo de vida de cada recurso virtual ativo [56]. Desempenho: A virtualização é uma alternativa para suprir grandes demandas por recursos computacionais. Por outro lado, o uso de hypervisors adiciona uma camada extra de software o que gera um custo maior de processamento em relação a soluções não-virtualizadas. Outro fator limitante para o desempenho é a qualidade do serviço de interconexão oferecido para os serviços virtualizados. Aplicações mais exigentes quanto a operações de E/S são potencialmente mais propensas a terem um menor desempenho em ambientes virtualizados. Redes virtuais: Uma possibilidade inerente é o uso do hardware computacional virtualizado. Nesse contexto, as redes virtuais são baseadas na emulação das interfaces de rede junto ao hypervisor. Ao invés de tratar a comunicação de rede entre máquinas virtuais no nível da interface física do host que as mantém, pode-se virtualizar a própria infraestrutura de rede das VMs. Nesse sentido, o tráfego de rede utiliza um comutador virtual (ou vswitch). Esse comutador se comporta como um switch físico convencional, mas é virtualizado pelo hypervisor. Uma

15 4 Open Virtualization Format 15 solução em software open source é o Open vswitch [57], que é um switch virtual multicamadas (licença Apache 2.0). Além de ser utilizado como switch para redes virtuais, ele também pode ser utilizado em conjunto com redes físicas. Está disponibilizado a partir do kernel do Linux, e suporta várias soluções de virtualização tais como Xen, KVM, Proxmox VE e VirtualBox. Essa solução também tem sido integrada em diversas plataformas de nuvem, como OpenStack, OpenQRM e OpenNebula. 4 Open Virtualization Format Para manter a portabilidade na distribuição e especificação de VMs a indústria de virtualização (em especial as empresas Dell, HP, IBM, Microsoft, VMware e Citrix) definiu o formato OVF (Open Virtualization Format) [58]. A especificação OVF é aberta e neutra em termos de plataforma de virtualização e descreve um formato para empacotamento e distribuição do software a ser executado em VMs [58]. No entanto, VMs também podem ser importadas e exportadas utilizando o formato OVF. Essa especificação tem o objetivo de garantir portabilidade na distribuição de VMs e suas aplicações, entre múltiplas plataformas de virtualização. As seguintes vantagens podem ser enumeradas [58]: VMs podem ser instaladas nos hosts apenas se o hardware especificado em OVF estiver disponível; Inclusão de licenças de uso especificadas em documentos de metadados junto ao pacote da distribuição; Especificação da compressão de dados para transferências de grandes imagens virtuais; Verificação de integridade de imagens baseada em infraestruturas de chave-pública, com um esquema para a gerência de licenças de software; Descrição padronizada dos recursos virtuais disponíveis nas VMs. Um pacote OVF deve conter os seguintes arquivos [58]: Um arquivo descritor do tipo metadados: contém a descrição, em formato XML, dos recursos virtuais de uma VM, tais como interfaces de rede, discos virtuais, tipo de sistema operacional instalado, requisitos de hardware virtual (CPU, memória RAM, drive de CD-ROM, entre outros), configurações de CPU, ordem de boot, endereços MAC virtuais, configurações de áudio e vídeo, entre outros; Nenhum ou um arquivo de manifest: contém a descrição do algoritmo utilizado para criptografar os dados do pacote. O algoritmo SHA-1 (Secure Hash Algorithm version 1) é adotado por padrão; Nenhum ou um arquivo de certificado: As informações do arquivo manifest podem ser assinadas e mantidas em um arquivo de certificado X.509 codificado em base 64;

16 16 Nenhum, um ou mais arquivos de imagem de disco virtual: por ser neutro em relação ao formato da imagem virtual, o pacote OVF deve conter uma URI que forneça uma especificação única sobre como interpretar o formato da imagem virtual. Múltiplos formatos de disco virtual são suportados, mas é recomendado o uso de imagens em formato VMDK (Virtual Machine Disk Format). Como exemplo, o VirtualBox cria dois arquivos VMDK: um que contém informações adicionais da VM (nome da VM, tamanho em bytes, versão do VMware), e outro com a própria imagem virtual. Nenhum, um ou mais arquivos de recursos adicionais: por exemplo, arquivo de imagem ISO a partir do qual o sistema operacional foi instalado na VM. 5 Soluções para Virtualização A seguir é feita uma descrição sucinta das principais soluções de virtualização gratuitas disponíveis para usuários não-comerciais. 5.1 VMware Os produtos da empresa VMware [19] utilizam uma combinação de técnicas de execução direta de instruções em hardware e técnicas de tradução binária para oferecer o suporte à virtualização em seus produtos. A empresa disponibiliza vários produtos, gratuitos e comerciais, para o suporte à virtualização e à computação em nuvem. Dentre eles, destacam-se [59]: Desktop Editions VMware Workstation: suporte para a criação de múltiplas VMs em um mesmo host cliente. Possui suporte para a geração de snapshots. Um snapshot é uma cópia em memória do estado corrente da VM, de forma que uma VM possa ser iniciada a partir desse estado. Com um snapshot o usuário possui um gerenciador de snapshots, a partir do qual se tem a opção de alternar entre diferentes estados de uma mesma VM, o que torna o produto VMWare Workstation ideal para ambientes de teste e desenvolvimento de softwares. As VMs criadas com essa versão de software da VMWare podem ser transportadas para os produtos servidores, tais como o VMWare Server. No entanto, o produto VMWare Workstation não é recomendado para ser usado em servidores por questões de desempenho. VMware Fusion: Ambiente virtual para a execução de sistema operacional Windows em plataformas Macintoch. VMware Player: É um software para a criação e execução de múltiplas VMs em um mesmo host cliente. No entanto, não há suporte para a gerência de múltiplos snapshots ou clonagem de VMs Server Editions VMware ESX Server é um produto comercial para aplicações empresariais que suporta a execução de diversas VMs. Esse software servidor possui um kernel próprio do Linux Red Hat modificado, de

17 5.2 Xen 17 forma a obter um melhor desempenho para a execução das VMs, sem a necessidade de se ter outro sistema operacional instalado no host servidor. VMWare Server é um produto de virtualização gratuito para pequenos e médios servidores, e que depende de um sistema operacional Linux ou Windows instalado no host servidor. Além dos produtos citados, destacam-se outros como: VirtualCenter que é destinado para a gerência centralizada de servidores VMWare; VMotion que é utilizado para a migração in live de servidores virtuais para servidores físicos, sem a interrupção dos serviços; e VMware Converter que é utilizado para converter sistemas operacionais que executam em hosts físicos em máquinas virtuais. 5.2 Xen Xen [21] é um hypervisor ou Virtual Machine Monitor (VMM), que é uma camada de software que encaminha instruções privilegiadas de VMs diretamente no hardware do computador. Xen oferece virtualização por meio da paravirtualização e suporta diversos tipos de arquiteturas de processadores: x86, x86-64, Itanium, Power PC e ARM. O projeto Xen é open source e foi desenvolvido pelo Systems Research Group da University of Cambridge Computer Laboratory. De acordo com [60], mais do que emular os dispositivos de hardware existentes, como é realizado com a virtualização completa, Xen expõe um conjunto de abstrações de dispositivos de E/S. A transferência de dados é feita via Xen, utilizando técnicas de memória compartilhada e bufferização assícrona. O software Xen é um hypervisor que é instanciado logo após o bootloader do sistema operacional. Uma VM Linux conhecida como Domain 0 (ou Dom 0) fornece recursos virtualizados para domínios de usuários (ou Dom U) no Host. Existe suporte para um amplo conjunto de sistemas operacionais, entre os quais: Linux, Windows, NetBSD, Solares, entre outros. Xen é utilizado em diversos ambientes de nuvem como na Amazon EC2, Nimbus e Eucalyptus. 5.3 KVM KVM (Kernel-based Virtual Machine) [22] é uma solução open source, sob licença GPL, para virtualização completa em Linux, para arquiteturas de processadores x86 e x64. A virtualização com o KVM utiliza um driver no kernel do Linux. Por meio de um módulo carregado junto ao kernel ( e superiores) do sistema operacional, o kvm.ko, é fornecida uma infraestrutura de virtualização para os processadores Intel e AMD. Cada máquina virtual instanciada possui seus próprios recursos de hardware virtualizados. KVM exige exige o suporte à virtualização por hardware na CPU, e utiliza o escalonador e o gerenciamento de memória regulares do Linux. KVM não suporta paravirtualização para CPU, mas sim para dispositivos de entrada/saída, como disco e interface de rede, utilizando a interface VirtIO, sem a necessidade de simular todo o kernel do sistema operacional para realizar essas funções. A proposta do KVM têm despertado atenção porque interage diretamente com o kernel do sistema operacional e pode se comunicar diretamente com o hardware. Como consequência, tende a oferecer um desempenho melhor do que as tecnologias de virtualização no nível de aplicação. KVM utiliza uma versão modificada do software QEMU para a emulação de dispositivos como processos separados no espaço do usuário [28].

18 18 Fig. 6: Interface Gráfica de Gerência do Virsh para o KVM. 5.4 QEMU QEMU (Open Source Processor Emulator) [48] [61] é um virtualizador e emulador open source genérico. Ele oferece suporte para a execução completa de sistemas operacionais, fornecendo uma camada de abstração de software na qual o sistema operacional pode executar como se estivesse acessando diretamente o processador legado e/ou periféricos. Uma grande diversidade de processadores e sistemas operacionais é suportada. QEMU também suporta a emulação em user mode na qual programas compilados em uma arquitetura de CPU podem ser executados em outra. Por exemplo, QEMU pode ser utilizado para executar os emuladores Wine e Dosemu. Quando utilizado em conjunto com o KVM, por meio da habilitação do módulo kqemu no kernel do sistema operacional, obtém-se um ganho maior de desempenho. QEMU não precisa de extensões de módulos no kernel do sistema operacional, nem de extensões para o suporte à virtualização na CPU, e nem de uma camada de software de um hypervisor. A emulação de disco em formato QCOW permite a captura de snapshots de execução de VMs, e migração em tempo de execução (live migration).

19 5.5 VirtualBox VirtualBox VirtualBox é um hypervisor, open source e gratuito para usuários não-comerciais, que suporta VMs com sistemas operacionais de diversas distribuições. O software VirtualBox é multi-plataforma e pode ser instalado em sistemas Linux, Windows, Mac e Solaris [23]. O hypervisor do VirtualBox precisa de um sistema operacional base para executar (hypervisor tipo 2). Fig. 7: Hypervisor do VirtualBox e máquina virtual instanciada. 5.6 Virsh Virsh [62] é uma interface de linha de comando open source, que encapsula as funcionalidades da API Libvirt para o gerenciamento (principalmente para operações de iniciar, finalizar, pausar, suspender, resumir e listar o status) de máquinas virtuais QEMU, KVM e Xen. Mais especificamente é um toolkit em linguagem C que executa em modo assíncrono, uma vez que o tempo para a realização de operações de gerência não é imediato (por exemplo, início e finalização de uma VM). Toolkits adicionais includem o virt-viewer, para a visualização gráfica das VMs, acessível por meio de um protocolo VNC; e virt-manager, que também é um programa com interface gráfica, escrito em linguagem Python, para a gerência de VMs, como mostra a Fig 6. Libvirt [62] é uma API open source para a gerência de VMs, que possui interfaces para os principais sistemas de virtualização: Xen, QEMU, KVM, LXC, OpenVZ, hypervisors VMware ESX e GSX, hypervisors VMware workstation e Player, User Mode Linux e VirtualBox. Libvirt utiliza o serviço libvirtd para intermediar a comunicação com o sistema de virtualização, e arquivos XML para definir o hardware virtualizado. Além do suporte convencional para a gerência de VMs, essa

20 20 API oferece funcionalidades para a criação de diversos dispositivos virtuais como bridges, interfaces de rede, discos de armazenagem, unidades de CD-ROM, displays, interfaces de som, entre outros. A Fig. 8 ilustra alguns exemplos de interação oferecidas pela API. Trata-se portanto de um canivete suiço para as mais populares soluções de virtualização. Userspace Tools virsh virt viewer virt manager libvirt libvirt libvirt libvirtd libvirt Hypervisor Kernel KVM Module Kernel Dom0 DomU QEMU QEMU QEMU Guest Guest Guest Guest Guest Guest Xen KVM QEMU Fig. 8: Ilustração das diversas formas de uso da biblioteca Libvirt [44]. 5.7 OpenVZ OpenVZ [17] é um sistema open source de virtualização, sob a licença GPL, baseado em containers para sistemas operacionais Linux. OpenVZ cria múltiplos containers isolados conhecidos como Virtual Environments (VE) para consolidação de servidores. Esse sistema de virtualização é a base do Parallels Virtuozzo Containers, que é uma solução comercial [41]. O OpenVZ segue o conceito de ambientes virtuais no qual o ambiente de execução de programas é isolado dos demais. Esse ambiente mantém os sistema operacional Linux Guests isolados uns dos outros, ou seja, vários Linux Guests podem coexistir no mesmo servidor físico, mas todos eles devem executar sob um mesmo kernel. Para isso, o OpenVZ utiliza uma versão modificada do kernel do Linux convencional para adicionar as funções de virtualização, isolamento dos Guests, gerência de recursos e checkpoints (ou seja, gerar snapshots das VMs, onde o estado da VM é congelado e armazenado em disco). Também é suportada a migração de VMs. Para otimizar a instalação e uso de novos Guests, o OpenVZ também suporta templates de imagens de sistemas operacionais. Cada template contém um conjunto de pacotes pré-configurados. 5.8 LXC Linux Containers (LXC) [63] [64] é um método de virtualização no nível do sistema operacional, similar ao OpenVZ, mas sem a necessidade de se adicionar um patch ao kernel das distribuições Linux mais recentes (motivo pelo qual ele vem sendo adotado como alternativa ao OpenVZ). Múltiplos ambientes virtuais (Virtual Environments - VE) conhecidos como containers podem executar no

Introdução a Virtualização. Sergio Roberto Charpinel Junior Profa. Roberta Lima Gomes

Introdução a Virtualização. Sergio Roberto Charpinel Junior Profa. Roberta Lima Gomes Introdução a Virtualização Sergio Roberto Charpinel Junior Profa. Roberta Lima Gomes Por que virtualizar? Descentralização de recursos computacionais Cloud computing Plena utilização de recursos físicos

Leia mais

Virtualização. O conceito de VIRTUALIZAÇÃO

Virtualização. O conceito de VIRTUALIZAÇÃO Virtualização A virtualização está presente tanto no desktop de um entusiasta pelo assunto quanto no ambiente de TI de uma infinidade de empresas das mais variadas áreas. Não se trata de "moda" ou mero

Leia mais

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores Máquinas Virtuais e Emuladores Marcos Aurelio Pchek Laureano Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware sistema operacional aplicações Sistemas

Leia mais

Virtualização - VMWare e Xen

Virtualização - VMWare e Xen Virtualização - VMWare e Xen A virtualização consiste na emulação de ambientes isolados, capazes de rodar diferentes sistemas operacionais dentro de uma mesma máquina, aproveitando ao máximo a capacidade

Leia mais

Computação na Nuvem: Virtualização e Migração de VM. André Meireles Estêvão Monteiro Monique Soares

Computação na Nuvem: Virtualização e Migração de VM. André Meireles Estêvão Monteiro Monique Soares Computação na Nuvem: Virtualização e Migração de VM André Meireles Estêvão Monteiro Monique Soares Agenda Overview Histórico Abordagens Desafios em x86 Snapshots Virtualização de Hardware/Plataforma/Sevidor:

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

Agenda. Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão

Agenda. Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão Máquinas Virtuais Agenda Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão Histórico Mainframe É um computador de grande porte, dedicado

Leia mais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores SISTEMAS OPERACIONAIS Maquinas Virtuais e Emuladores Plano de Aula Máquinas virtuais Emuladores Propriedades Benefícios Futuro Sistemas de Computadores Os sistemas de computadores são projetados com basicamente

Leia mais

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com Cloud Computing Andrêza Leite andreza.lba@gmail.com Roteiro O que é cloud computing? Classificação O que está 'por traz' da cloud? Exemplos Como montar a sua? O que é cloud computing? Cloud Computing O

Leia mais

Capítulo 1. Introdução

Capítulo 1. Introdução Capítulo 1 Introdução 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Revisão sobre hardware de computadores 1.5 Conceitos sobre sistemas

Leia mais

Sistemas Operacionais 1/66

Sistemas Operacionais 1/66 Sistemas Operacionais 1/66 Roteiro Máquinas virtuais Emuladores Propriedades Benefícios Futuro 2/66 Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware

Leia mais

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano Sistemas Operacionais Marcos Laureano 1/66 Roteiro Máquinas virtuais Emuladores Propriedades Benefícios Futuro 2/66 Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3

Leia mais

Xen e a Arte da Virtualização

Xen e a Arte da Virtualização Xen e a Arte da Virtualização Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield University of Cambridge Computer Laboratory Microsoft

Leia mais

CLOUD COMPUTING. Andrêza Leite. andreza.leite@univasf.edu.br

CLOUD COMPUTING. Andrêza Leite. andreza.leite@univasf.edu.br CLOUD COMPUTING Andrêza Leite andreza.leite@univasf.edu.br Roteiro O que é cloud computing? Classificação O que está 'por traz' da cloud? Exemplos Como montar a sua? O que é cloud computing? Cloud Computing

Leia mais

Virtualização: VMWare e Xen

Virtualização: VMWare e Xen Virtualização: VMWare e Xen Diogo Menezes Ferrazani Mattos Professor: Otto Carlos Disciplina: Redes I Universidade Federal do Rio de Janeiro POLI/COPPE 1 Introdução Virtualização Divisão da máquina física

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

Leia mais

Planejamento Estratégico de TI. Felipe Pontes felipe.pontes@gmail.com

Planejamento Estratégico de TI. Felipe Pontes felipe.pontes@gmail.com Planejamento Estratégico de TI Felipe Pontes felipe.pontes@gmail.com VPN Virtual Private Network Permite acesso aos recursos computacionais da empresa via Internet de forma segura Conexão criptografada

Leia mais

Hypervisor. Diego Souza Gomes 3 de maio de 2007

Hypervisor. Diego Souza Gomes 3 de maio de 2007 Hypervisor Diego Souza Gomes 3 de maio de 2007 Resumo As máquinas virtuais envolvem a criação de um sistema de computador totalmente em software. Usando-as, é possível hospedar vários computadores virtuais

Leia mais

Prof. José Maurício S. Pinheiro UniFOA 2009-2

Prof. José Maurício S. Pinheiro UniFOA 2009-2 Tecnologias WEB Virtualização de Sistemas Prof. José Maurício S. Pinheiro UniFOA 2009-2 Conceitos Virtualização pode ser definida como técnica que combina ou divide recursos computacionais para prover

Leia mais

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas ATIVIDADE 1 MÁQUINAS VIRTUAIS Existem hoje diversas tecnologias e produtos para virtualização de computadores e ambientes de execução, o que pode gerar uma certa confusão de conceitos. Apesar disso, cada

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Xen Cloud Platform Xen descomplicado

Xen Cloud Platform Xen descomplicado Xen Cloud Platform Xen descomplicado CAPA A Xen Cloud Platform facilita muito a criação e o gerenciamento de máquinas virtuais sobre o hypervisor Xen. por Boris Quiroz e Stephen Spector A revolução da

Leia mais

A SALA DE AULA é meu paraíso. Nela me realizo, nela exercito minha cidadania e nela me sinto útil.

A SALA DE AULA é meu paraíso. Nela me realizo, nela exercito minha cidadania e nela me sinto útil. Virtualização Meu nome: Nome de guerra: Meu e-mail: Marcos Vinicios Bueno Marques Professor Cidão marcos@cidao.com.br Quem sou? Professor e coordenador de cursos de TI do Senac Informática em Porto Alegre,

Leia mais

Gerenciamento e Interoperabilidade de Redes

Gerenciamento e Interoperabilidade de Redes EN-3610 Gerenciamento e Interoperabilidade de Redes Computação em Nuvem Introdução Centralização do processamento Surgimento da Teleinformática Década de 60 Execução de programas localmente Computadores

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

INE651600 Sistemas Operacionais I

INE651600 Sistemas Operacionais I INE651600 Sistemas Operacionais I Thiago Machado Seminário sobre Virtualização de Sistemas Operacionais Virtualização Definição: Permite abstrair os recursos de hardware que uma máquina possui. Criando

Leia mais

TÉCNICAS DE VIRTUALIZAÇÃO E SUAS IMPLEMENTAÇÕES

TÉCNICAS DE VIRTUALIZAÇÃO E SUAS IMPLEMENTAÇÕES 1 MEC SETEC SERVIÇO PÚBLICO FEDERAL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO CAMPUS CUIABÁ DIRETORIA DE PESQUISA E PÓS-GRADUAÇÃO TÉCNICAS DE VIRTUALIZAÇÃO E SUAS IMPLEMENTAÇÕES

Leia mais

Benefícios da Virtualização as para empresas

Benefícios da Virtualização as para empresas Benefícios da Virtualização as para empresas Os investimentos no processo de Virtualização na área de Tecnologia da Informação (TI) aumentaram cerca de 80% nos últimos três anos, segundo informações da

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO. UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Xen Hypervisor Glauco Neves 07132022 Guilherme Pacheco 07232063 INE 5412-0432

Leia mais

Prof. Luiz Fernando Bittencourt MO809L. Tópicos em Sistemas Distribuídos 1 semestre, 2015

Prof. Luiz Fernando Bittencourt MO809L. Tópicos em Sistemas Distribuídos 1 semestre, 2015 MO809L Tópicos em Sistemas Distribuídos 1 semestre, 2015 Virtualização Virtualização Threads/processos: Modo de fazer mais coisas ao mesmo tempo. Concorrência - impressão de execução paralela em computador

Leia mais

Gabriel Oliveira do Nascimento Rogério Libarino Aguilar. UFF - Universidade Federal Fluminense

Gabriel Oliveira do Nascimento Rogério Libarino Aguilar. UFF - Universidade Federal Fluminense Gabriel Oliveira do Nascimento Rogério Libarino Aguilar 1 Introdução Mododelo: Hardware -> Sistema Operacional -> Aplicações Aplicação desenvolvida para um SO. Capacidade de processamento aumentando bastante

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

Classificação::Modelo de implantação

Classificação::Modelo de implantação Classificação::Modelo de implantação Modelo de implantação::privado Operada unicamente por uma organização; A infra-estrutura de nuvem é utilizada exclusivamente por uma organização: Nuvem local ou remota;

Leia mais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer lugar e independente da plataforma, bastando para isso

Leia mais

Professor Esp.: Douglas Diego de Paiva douglas.ddp@gmail.com

Professor Esp.: Douglas Diego de Paiva douglas.ddp@gmail.com VIRTUALIZAÇÃO Professor Esp.: Douglas Diego de Paiva douglas.ddp@gmail.com Virtualização o que é? É uma forma de esconder as características físicas de uma plataforma computacional dos usuários, emulando

Leia mais

Prof. Ms. José Eduardo Santarem Segundo santarem@univem.edu.br. Demonstrar o impacto que o tema virtualização tem representado no mercado

Prof. Ms. José Eduardo Santarem Segundo santarem@univem.edu.br. Demonstrar o impacto que o tema virtualização tem representado no mercado Prof. Ms. José Eduardo Santarem Segundo santarem@univem.edu.br Demonstrar o impacto que o tema virtualização tem representado no mercado de TI. Apresentar alguns conceitos e técnicas sobre a tecnologia

Leia mais

Virtualização: Conceitos e Aplicações em

Virtualização: Conceitos e Aplicações em Virtualização: Conceitos e Aplicações em Segurança Marcos Laureano e Carlos Maziero Centro Universitário Franciscano Unifae Pontíficia Universidade Católica do Paraná Programa de Pós-Graduação em Informática

Leia mais

As ferramentas certas para a virtualização eficiente Ferramentas virtuais. Helmuth Castillo - www.sxc.hu. e não gerem trabalho ou preocupações

As ferramentas certas para a virtualização eficiente Ferramentas virtuais. Helmuth Castillo - www.sxc.hu. e não gerem trabalho ou preocupações As ferramentas certas para a virtualização eficiente Ferramentas virtuais CAPA As boas tecnologias já existem. Conheça agora as ferramentas mais adequadas para gerenciar cada solução de virtualização.

Leia mais

ANDRE KUSUMOTO VIRTUALIZAÇÃO

ANDRE KUSUMOTO VIRTUALIZAÇÃO ANDRE KUSUMOTO VIRTUALIZAÇÃO OBJETIVO Objetivo do deste trabalho é o autoaprendizado e a disseminação do conhecimento empregado no conceito de virtualização. Assim como a demostração de seu uso em conjunto

Leia mais

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla Unidade III FUNDAMENTOS DE SISTEMAS OPERACIONAIS Prof. Victor Halla Conteúdo Arquitetura de Processadores: Modo Operacional; Velocidade; Cache; Barramento; Etc. Virtualização: Maquinas virtuais; Gerenciamento

Leia mais

Consolidação de Servidores com VMware

Consolidação de Servidores com VMware Herles da Silva Rangel Curso de Especialização em Redes e Segurança Pontifica Universidade Católica do Paraná (PUC-PR) Curitiba, Maio de 2009 Resumo O presente trabalho trata da implementação de uma proposta

Leia mais

A Academia Brasileira de Letras diz que este verbete não existe.

A Academia Brasileira de Letras diz que este verbete não existe. Virtualização Virtualização? A Academia Brasileira de Letras diz que este verbete não existe. Virtual: Segundo o Dicionário da Língua Portuguesa, significa: adj (lat virtuale) 1- Que não existe como realidade,

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

CA Server Automation. Visão geral. Benefícios. agility made possible

CA Server Automation. Visão geral. Benefícios. agility made possible FOLHA DE PRODUTOS: CA Server Automation agility made possible CA Server Automation O CA Server Automation é uma solução integrada de gerenciamento de data center que automatiza o provisionamento, a aplicação

Leia mais

Virtualização. Prof. Emiliano Monteiro

Virtualização. Prof. Emiliano Monteiro Virtualização Prof. Emiliano Monteiro Conceitos Virtualização significa criar uma versão virtual de um dispositivo ou recurso, como um servidor, dispositivo de armazenamento, rede ou até mesmo um sistema

Leia mais

Departamento de Tecnologia da Informação

Departamento de Tecnologia da Informação Xen - O case de virtualização da Alergs XIII Enial - Brasília Novembro/2010 DTI Superintendência Administrativa e Financeira Assembleia Legislativa do RS Tópicos abordados: A infraestrutura de TI Alergs

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF. ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I Máquina Virtual Instalação de S.O. em dual boot 1º Semestre 2010 PROF. AMARAL Na ciência da computação, máquina virtual é o nome dado a uma máquina,

Leia mais

Prof. Victor Halla. Unidade IV FUNDAMENTOS DE SISTEMAS

Prof. Victor Halla. Unidade IV FUNDAMENTOS DE SISTEMAS Prof. Victor Halla Unidade IV FUNDAMENTOS DE SISTEMAS OPERACIONAIS Conteúdo Estudo de Casos; Linux e Windows; Características; VMware e Xen; Características; Ferramentas; Custo total de posse TCO = Total

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Virtualização. Hardware Virtual? Máquina Virtual? Software ou Hardware? Profº André Luiz andreluizsp@gmail.com

Virtualização. Hardware Virtual? Máquina Virtual? Software ou Hardware? Profº André Luiz andreluizsp@gmail.com Virtualização Hardware Virtual? Máquina Virtual? Software ou Hardware? Profº André Luiz andreluizsp@gmail.com O problema...... os departamentos de TI passaram a ter consciência de que os recursos como

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores 3º Ano Sistemas de Informação 2008 Aula 05A: Hub/Switch/Gateway Servidores e Virtualização Prof. Msc. Ricardo Slavov ricardo.slavov@aes.edu.br Roteiro Pedagógico HUB Switch Bridge

Leia mais

VirtualBox Mario Hato Instituto de Computação UNICAMP VirtualBox

VirtualBox Mario Hato Instituto de Computação UNICAMP VirtualBox Mario Hato Instituto de Computação UNAMP 1 Motivação Infraestrutura de computação - 2000 1 PC 1 SO Vários Aplicativos Utilização Baixa < 25% App App App App App App App App X86 Windows XP X86 Windows 2003

Leia mais

Benefícios do Windows Server 2008 R2 Hyper-V para SMB

Benefícios do Windows Server 2008 R2 Hyper-V para SMB Benefícios do Windows Server 2008 R2 Hyper-V para SMB Sumário Introdução... 3 Windows Server 2008 R2 Hyper-V... 3 Live Migration... 3 Volumes compartilhados do Cluster... 3 Modo de Compatibilidade de Processador...

Leia mais

Virtualização de Software

Virtualização de Software UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE BACHARELADO DE SISTEMAS DE INFORMAÇÃO Virtualização de Software Luana Sandrini Saft Trabalho de conclusão de curso

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Virtualização Gerencia de Redes Redes de Computadores II

Virtualização Gerencia de Redes Redes de Computadores II Virtualização Gerencia de Redes Redes de Computadores II *Créditos: baseado no material do Prof. Eduardo Zagari Virtualização - Introdução Introduzido nos anos 60 em Mainframes Em 1980 os microcomputadores

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

Cisco Intelligent Automation for Cloud

Cisco Intelligent Automation for Cloud Dados técnicos do produto Cisco Intelligent Automation for Cloud Os primeiros a adotarem serviços com base em nuvem buscavam uma economia de custo maior que a virtualização e abstração de servidores podiam

Leia mais

Virtualização para facilitar o gerenciamento

Virtualização para facilitar o gerenciamento Virtualização para facilitar o gerenciamento O atual desafio enfrentado pela indústria de tecnologia da informação (TI) é o de continuar produzindo sistemas menores, mais leves e mais rápidos e, ao mesmo

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas

Tecnólogo em Análise e Desenvolvimento de Sistemas Tecnólogo em Análise e Desenvolvimento de Sistemas O conteúdo deste documento tem como objetivos geral introduzir conceitos mínimos sobre sistemas operacionais e máquinas virtuais para posteriormente utilizar

Leia mais

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 03: Estruturas dos SOs Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com OBJETIVOS Descrever os serviços que um sistema operacional oferece aos usuários e outros sistemas

Leia mais

Virtualização: VMWare e Xen

Virtualização: VMWare e Xen Virtualização: VMWare e Xen Diogo Menezes Ferrazani Mattos GTA/POLI/UFRJ HTTP://www.gta.ufrj.br/ Abstract Nowadays, the concept of virtualization is being remembered as a possible solution, which has low

Leia mais

BOLETIM TÉCNICO NComputing Brasil - #110502 Instalando o Oracle Virtualbox 4.0.2 e Criando uma VM Windows Server 2008 no Virtualbox O que é virtualbox? O virtualbox é um aplicativo de virtualização multi-plataforma

Leia mais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais 1º Estudo Dirigido Capítulo 1 Introdução aos Sistemas Operacionais 1. Defina um sistema operacional de uma forma conceitual correta, através de suas palavras. R: Sistemas Operacionais são programas de

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Curso Técnico de Nível Médio

Curso Técnico de Nível Médio Curso Técnico de Nível Médio Disciplina: Informática Básica 3. Software Prof. Ronaldo Software Formado por um conjunto de instruções (algoritmos) e suas representações para o

Leia mais

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC Prof. Almeida Jr ESTRUTURA DE SISTEMA COMPUTACIONAL 2 O QUE FAZ UM SISTEMA OPERACIONAL? Ponto de Vista

Leia mais

SO Sistemas Operacionais

SO Sistemas Operacionais GOVERNO DO ESTADO DO RIO DE JANEIRO FUNDAÇÃO DE APOIO A ESCOLA TÉCNICA ESCOLA TÉCNICA ESTADUAL REPÚBLICA SO Sistemas Operacionais Curso de Informática ETE REPÚBLICA - Rua Clarimundo de Melo, 847, Quintino

Leia mais

The Eucalyptus Open- source Cloud-computing System. Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva

The Eucalyptus Open- source Cloud-computing System. Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva The Eucalyptus Open- source Cloud-computing System Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva Sumário Introdução Trabalhos Correlatos Eucalyptus Design Conclusões Visão Geral Introdução:

Leia mais

40 ERAD 2009 Caxias do Sul, 17 a 20 de março de 2009

40 ERAD 2009 Caxias do Sul, 17 a 20 de março de 2009 40 ERAD 2009 Caxias do Sul, 17 a 20 de março de 2009 4.1. Introdução A virtualização e o uso de máquinas virtuais se tornaram um assunto destaque no mundo da tecnologia da informação (TI), apesar de não

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Operating System Concepts, Abraham Silberschatz, Peter Baer Galvin, 6ª Ed., Addison-Wesley, 2002 [cap.1, 2 e 3] Operating Systems, Third Edition Harvey M. Deitel, Prentice

Leia mais

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

CLOUD COMPUTING PEDRO MORHY BORGES LEAL. MAC0412 - Organização de Computadores Prof. Alfredo Goldman 7 de dezembro de 2010

CLOUD COMPUTING PEDRO MORHY BORGES LEAL. MAC0412 - Organização de Computadores Prof. Alfredo Goldman 7 de dezembro de 2010 CLOUD COMPUTING PEDRO MORHY BORGES LEAL MAC0412 - Organização de Computadores Prof. Alfredo Goldman 7 de dezembro de 2010 0 CLOUD COMPUTING 1 1. Introdução Com o grande avanço da tecnologia de processadores,

Leia mais

poupar o meio ambiente. O Gartner declarou que a TI verde é a tendência do ano em 2008. Se a questão for virtualizar aplicações

poupar o meio ambiente. O Gartner declarou que a TI verde é a tendência do ano em 2008. Se a questão for virtualizar aplicações Cenários de aplicação e tendências na área de virtualização CAPA São tantas opções... Apresentamos os principais fornecedores de soluções de virtualização em e examinamos detalhadamente suas características.

Leia mais

O que é Cloud Computing?

O que é Cloud Computing? O que é Cloud Computing? Referência The Economics Of The Cloud, Microsoft, Nov. 2010 Virtualização, Brasport, Manoel Veras, Fev. 2011. 2 Arquitetura de TI A arquitetura de TI é um mapa ou plano de alto

Leia mais

Introdução. 1.1. Âmbito do Documento

Introdução. 1.1. Âmbito do Documento Introdução Embora o conceito de virtualização, não seja um conceito novo, o uso desta tecnologia vem crescendo exponencialmente nas infra-estruturas de TI. Este crescimento deve-se sobretudo aos benefícios

Leia mais

ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE REDES DE COMPUTADORES MÁRCIO DA SILVA KLAUCK

ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE REDES DE COMPUTADORES MÁRCIO DA SILVA KLAUCK ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE REDES DE COMPUTADORES MÁRCIO DA SILVA KLAUCK VIRTUALIZAÇÃO DE SISTEMAS: Implementação com o VMware no Ambiente Servidor do Frigorífico Excelência VILA VELHA

Leia mais

Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores

Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores Este artigo demonstra como configurar uma rede virtual para ser usada em testes e estudos. Será usado o VirtualBox

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO Sistema Operacional (S.O.) Aplicativos Formado por um conjunto de rotinas que oferecem serviços aos usuários, às aplicações

Leia mais

Virtualização de Sistemas Operacionais

Virtualização de Sistemas Operacionais Virtualização de Sistemas Operacionais Felipe Antonio de Sousa 1, Júlio César Pereira 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipeantoniodesousa@gmail.com, juliocesarp@unipar.br Resumo.

Leia mais

Sistemas Operacionais Estruturas de Sistemas Operacionais Ref.: Capítulo 3

Sistemas Operacionais Estruturas de Sistemas Operacionais Ref.: Capítulo 3 Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Sistemas Operacionais Estruturas de Sistemas Operacionais Ref.: Capítulo 3 Vicente Amorim vicente.amorim.ufop@gmail.com

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 12 Computação em Nuvem Sumário Introdução Arquitetura Provedores

Leia mais

CA Automation Suite for Data Centers

CA Automation Suite for Data Centers FOLHA DE PRODUTOS: CA Automation Suite for Data Centers CA Automation Suite for Data Centers agility made possible "A tecnologia ultrapassou a capacidade de gerenciamento manual em todas as grandes empresas

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Naomi - GT8 HARDWARE & SISTEMAS DISTRIBUÍDOS

Naomi - GT8 HARDWARE & SISTEMAS DISTRIBUÍDOS Naomi - GT8 HARDWARE & SISTEMAS DISTRIBUÍDOS INTEGRANTES Aniel Cruz Claudio Sant Anna José Eurique Ribeiro Roberto Nou HARDWARE & SISTEMAS DISTRIBUÍDOS Clusters Conceito; Desempenho, Disponibilidade, Balanceamento

Leia mais

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE Andressa T.R. Fenilli 1, Késsia R.C.Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil andressa.trf@gmail.com, kessia@unipar.br Resumo. Computação em

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

O que é Cloud Computing (Computação nas Nuvens)?

O que é Cloud Computing (Computação nas Nuvens)? O que é Cloud Computing (Computação nas Nuvens)? Introdução A denominação Cloud Computing chegou aos ouvidos de muita gente em 2008, mas tudo indica que ouviremos esse termo ainda por um bom tempo. Também

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos I: Threads, virtualização e comunicação via protocolos Prof. MSc. Hugo Souza Nesta primeira parte sobre os Processos Distribuídos iremos abordar: Processos e a comunicação

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte Fernando Seabra Chirigati Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte Introdução Grid x Nuvem Componentes Arquitetura Vantagens

Leia mais

CloudNet: dynamic pooling of cloud resources by live WAN migration of virtual machines

CloudNet: dynamic pooling of cloud resources by live WAN migration of virtual machines CloudNet: dynamic pooling of cloud resources by live WAN migration of virtual machines Timothy Wood, Prashant Shenoy, K.K. Ramakrishnan, Jacobus Van der Merwe VEE '11 Proceedings of the 7th ACM SIGPLAN/SIGOPS

Leia mais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais Computação em Nuvem Computação em nuvem: gerenciamento de dados Computação em nuvem (Cloud Computing) é uma tendência recente de tecnologia cujo objetivo é proporcionar serviços de Tecnologia da Informação

Leia mais