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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. 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

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

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

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

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

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

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

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

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

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Soluções de Gerenciamento de Clientes e de Impressão Universal

Soluções de Gerenciamento de Clientes e de Impressão Universal Soluções de Gerenciamento de Clientes e de Impressão Universal Guia do Usuário Copyright 2007 Hewlett-Packard Development Company, L.P. Windows é uma marca registrada nos Estados Unidos da Microsoft Corporation.

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

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

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

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Arquitetura Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Sistemas monolíticos Sistemas em camadas Sistemas micro-núcleo Modelo Cliente-Servidor Máquinas

Leia mais

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Universidade de Trás-os-Montes e Alto Douro Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Agenda A UTAD Virtualização Uma definição Introdução e abrangência

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

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

Segurança da Informação

Segurança da Informação INF 108 Segurança da Informação Computação em Nuvem Prof. João Henrique Kleinschmidt Introdução Centralização do processamento Surgimento da Teleinformática Década de 60 Execução de programas localmente

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

Virtualização e Criação de uma rede Virtual utilizando Virtual Box Professor: João Paulo de Brito Gonçalves

Virtualização e Criação de uma rede Virtual utilizando Virtual Box Professor: João Paulo de Brito Gonçalves Virtualização e Criação de uma rede Virtual utilizando Virtual Box Professor: João Paulo de Brito Gonçalves Anatomia de uma máquina virtual Cada máquina virtual é um sistema completo encapsulado em um

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ópico 33 e 34 Virtualização São Paulo 2009 Virtualização Ao falar em virtualização,

Leia mais

João Víctor Rocon Maia Engenharia de Computação - UFES

João Víctor Rocon Maia Engenharia de Computação - UFES João Víctor Rocon Maia Engenharia de Computação - UFES Agenda Quem usa? Conceito Ilustração Vantagens Tipologia Topologia Como fazer? O que é preciso? Infraestrutura Sistema Operacional Software Eucalyptus

Leia mais

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 Appliance virtual do StruxureWare Data Center Expert O servidor do StruxureWare Data Center Expert 7.2 está agora disponível como um appliance

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

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

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

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

Senado Federal Questões 2012

Senado Federal Questões 2012 Senado Federal Questões 2012 Sistemas Operacionais Prova de Analista de Sistemas Prof. Gustavo Van Erven Senado Federal Questões 2012 Rede Social ITnerante http://www.itnerante.com.br/ Vídeo Aulas http://www.provasdeti.com.br/

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

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

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

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01 Prof. André Lucio Competências do modulo Introdução ao sistema operacional Windows Instalação e configuração do sistema

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O modelo ISO/OSI (Tanenbaum,, 1.4.1) Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade

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

VIRTUALIZAÇÃO CONVENCIONAL

VIRTUALIZAÇÃO CONVENCIONAL VIRTUALIZAÇÃO CONVENCIONAL Sera usado o VirtualBox 5.0.8 a versão mais atual e estável da aplicação, para virtualização de um sistema Linux sobre a plataforma Windows. Para esse modelo pratico de virtualização

Leia mais

Virtualização. Presente e futuro

Virtualização. Presente e futuro Virtualização Presente e futuro O que é virtualização? Virtualização é o processo de executar vários sistemas operacionais em uma única máquina. Cada máquina virtual é um ambiente completo e com todos

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Turma de Redes AULA 06 www.eduardosilvestri.com.br silvestri@eduardosilvestri.com.br Estrutura do Sistema Operacional Introdução É bastante complexo a estrutura de um sistema operacional,

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

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

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial TUTORIAL VMWARE WORKSTATION 8 Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial INTRODUÇÃO O uso de máquinas virtuais pode ser adequado tanto

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

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

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

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais. Conceitos de um Sistema Operacional Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM Rogério Schueroff Vandresen¹, Willian Barbosa Magalhães¹ ¹Universidade Paranaense(UNIPAR) Paranavaí-PR-Brasil rogeriovandresen@gmail.com, wmagalhaes@unipar.br

Leia mais

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PROFª. M.Sc. JULIANA H Q BENACCHIO Links importantes http://www.android.com/ Site oficial de toda a documentação, downloads e informações sobre a plataforma. http://developer.android.com/

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Sistemas Operacionais Introdução. Professora: Michelle Nery

Sistemas Operacionais Introdução. Professora: Michelle Nery Sistemas Operacionais Introdução Professora: Michelle Nery Área de Atuação do Sistema Operacional Composto de dois ou mais níveis: Tipo de Sistemas Operacionais Sistemas Operacionais Monotarefas Sistemas

Leia mais

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1 Resumo 19/08/2015 1 1. Tipos de Software 2. Introdução aos Sistemas Operacionais 3. Os Arquivos 4. Funções do Sistema Operacional 5. Programas Utilitários do Sistema Operacional 6. Termos Básicos 7. Tipos

Leia mais

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE III: Infraestrutura de Tecnologia da Informação Atualmente, a infraestrutura de TI é composta por cinco elementos principais: hardware, software,

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

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

Laboratório de Redes. Professora Marcela Santos marcela@edu.estacio.br

Laboratório de Redes. Professora Marcela Santos marcela@edu.estacio.br Laboratório de Redes Professora Marcela Santos marcela@edu.estacio.br Active Directory (AD) Samba Máquina virtual Criação de uma máquina virtual Instalação do Windows Server O Active Directory (AD) é um

Leia mais

Tópicos Especiais em Redes de Telecomunicações

Tópicos Especiais em Redes de Telecomunicações Tópicos Especiais em Redes de Telecomunicações Redes definidas por software e Computação em Nuvem Prof. Rodrigo de Souza Couto Informações Gerais Prof. Rodrigo de Souza Couto E-mail: rodsouzacouto@ieee.org

Leia mais

Automação de Locais Distantes

Automação de Locais Distantes Automação de Locais Distantes Adaptação do texto Improving Automation at Remote Sites da GE Fanuc/ Water por Peter Sowmy e Márcia Campos, Gerentes de Contas da. Nova tecnologia reduz custos no tratamento

Leia mais

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral da solução Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral À medida que tecnologias como nuvem, mobilidade, mídias sociais e vídeo assumem papéis

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Leia mais

Windows 2008 Server. Windows 2008 Server IFSP Boituva Prof. Sérgio Augusto Godoy. www.profsergiogodoy.com sergiogutogodoy@hotmail.

Windows 2008 Server. Windows 2008 Server IFSP Boituva Prof. Sérgio Augusto Godoy. www.profsergiogodoy.com sergiogutogodoy@hotmail. Windows 2008 Server IFSP Boituva Prof. Sérgio Augusto Godoy www.profsergiogodoy.com sergiogutogodoy@hotmail.com Windows 2008 Server Construído sob o mesmo código do Vista Server Core (Instalação somente

Leia mais

SFD 2010. Carla Souza Otacílio Lacerda

SFD 2010. Carla Souza Otacílio Lacerda SFD 2010 Carla Souza Otacílio Lacerda Virtualização "Em computação, é uma forma de esconder as características físicas de uma plataforma computacional dos utilizadores, mostrando outro hardware virtual,

Leia mais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura

Leia mais

CA Access Control for Virtual Environments

CA Access Control for Virtual Environments PERGUNTAS FREQUENTES for Virtual Environments Outubro de 2011 Dez principais perguntas 1. O que é o for Virtual Environments?... 2 2. Quais são os principais benefícios do for Virtual Environments?...

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

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