Sistemas Operacionais 1/66



Documentos relacionados
SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

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

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

Virtualização Gerencia de Redes Redes de Computadores II

Introdução. Sistemas Operacionais. Introdução. Roteiro (1 / 2) Por que Máquinas Virtuais Existem? Roteiro (2 / 2)

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

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

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

4 Estrutura do Sistema Operacional Kernel

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

Prof. José Maurício S. Pinheiro UniFOA

Professor Esp.: Douglas Diego de Paiva

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

Virtualização: VMWare e Xen

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

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

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

Capítulo 8. Software de Sistema

Sistemas Operacionais

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

Marcos Vinicios Marques Professor Cidão. Professor Marcelo Neves

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

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

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Virtualização. Presente e futuro

INE Sistemas Operacionais I

Virtualização - VMWare e Xen

Análise Comparativa entre Sistemas Operacionais Virtualizados

Sistemas Operacionais. Conceitos de um Sistema Operacional

Máquinas Virtuais e Emuladores

Virtualização de Software

Alta disponibilidade em máquinas

6 - Gerência de Dispositivos

Máquinas Virtuais: Windows 2008 Server

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

SISTEMAS OPERACIONAIS

Máquinas Virtuais. Virtualização Tornar virtual. Exemplo comum de Virtualização PORTABILIDADE

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

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla

Virtualização de Máquinas Uma experiência baseada em ferramentas livres

Hypervisor. Diego Souza Gomes 3 de maio de 2007

ESTUDO DE CASO WINDOWS VISTA

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

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

Organização e Arquitetura de Computadores I. de Computadores

Infra-Estrutura de Software. Introdução. (cont.)

Sistemas Operacionais Introdução. Professora: Michelle Nery

Virtualização de Máquinas Uma experiência baseada em ferramentas livres

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

Virtualização. P r e s e n t e e f u t u r o Andréa Garcia Trindade 2º. sem/2010. Virtualização Presente e Futuro

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

Máquinas Virtuais E eu com isso???

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Sistemas Operacionais

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

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

FundamentosemInformática

Senado Federal Questões 2012

SFD Carla Souza Otacílio Lacerda

Análise Comparativa de Desempenho do Hipervisor Xen: Paravirtualização versus Virtualização Total

Sistemas Operacionais Gerência de Dispositivos

Laboratório de Redes. Professora Marcela Santos

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Virtualização de Sistemas Operacionais

Foz do Iguaçu PR Brasil

Tecnólogo em Análise e Desenvolvimento de Sistemas

CA ControlMinder for Virtual Environments

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

VirtualBox Mario Hato Instituto de Computação UNICAMP VirtualBox

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

Redes de Computadores

ANÁLISE DE DESEMPENHO ENTRE SOFTWARES VIRTUALIZADORES

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Capítulo 1. Introdução

Figura 01 Kernel de um Sistema Operacional

Sistemas Operacionais. Prof. André Y. Kusumoto

Construção de um Ambiente Virtualizado para Terminais Thin Client

Máquinas Multiníveis

CA Access Control for Virtual Environments

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

Material 5 Administração de Recursos de HW e SW. Prof. Edson Ceroni

Sistemas Distribuídos

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Consolidação inteligente de servidores com o System Center

VIRTUALIZAÇÃO CONVENCIONAL

Arquitetura de Banco de Dados

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

Prof. Esp. Lucas Cruz

CURSO BÁSICO DE INFORMÁTICA

UNIVERSIDADE TUIUTI DO PARANÁ. Andrey Rafael Intima VIRTUALIZAÇÃO DE SERVIDORES CORPORATIVOS EM AMBIENTE WINDOWS COM MONITORAMENTO VIA ZABBIX

Online Help StruxureWare Data Center Expert

Sistemas Distribuídos

Estudo dos Principais Conceitos de Virtualização

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

Sistema de Computação

Transcrição:

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 sistema operacional aplicações 3/66

Sistemas de Computadores Aplicações Sistema Operacional Hardware 4/66

Plataformas diferentes Aplicações MacIntosh Aplicações Windows Aplicações Linux MacOS Windows Linux Power PC x86 x86 5/66

Incompatibilidade Aplicações MacIntosh Aplicações Windows MacOS Linux x86 x86 6/66

Máquina Virtual Cria uma camada para compatibilizar diferentes plataformas Esta camada é chamada de virtualização Softwares que podem ser utilizados para fazer os recursos parecerem diferentes do que realmente são. 7/66

Definição de Máquina Virtual Uma duplicata eficiente e isolada de uma máquina real A IBM define uma máquina virtual como uma cópia totalmente protegida e isolada de um sistema físico Na década de 60, uma abstração de software que enxerga um sistema físico (máquina real) 8/66

Máquina Virtual Aplicações Sistema Operacional Máquina Virtual Camada de compatibilidade Hardware 9/66

Máquina Virtual Aplicações Aplicações Aplicações Linux Windows Windows Camada de hardware virtual Aplicações Máquina Virtual Aplicações Sistema Operacional Software Processador Periférico Disco Disquete Camada de hardware físico 10/66

Emulador É o oposto da máquina real; Implementa todas as instruções realizadas pela máquina real em um ambiente abstrato de software Engana, fazendo com que todas as operações da máquina real sejam implementadas em um software Interpreta um código desenvolvido para outra plataforma. 11/66

Emulador e Máquina Virtual A funcionalidade e o nível de abstração de uma máquina virtual encontra-se em uma posição intermediária entre uma máquina real e um emulador, na forma em que os recursos de hardware e de controle são abstraídos e usados pelas aplicações. 12/66

Máquina Virtual É um ambiente criado por um monitor de máquina virtual; 13/66

Virtual Machine Monitor VMM Sistema operacional para sistemas operacionais; Também conhecida como hypervisor; O monitor pode criar uma ou mais máquinas virtuais sobre uma única máquina real. 14/66

VMM e Emulador Um emulador fornece uma camada de abstração completa entre o sistema em execução e o hardware; Um monitor fornece uma interface (através da multiplexação do hardware) que é idêntica ao hardware subjacente e controla uma ou mais máquinas virtuais; Um emulador também fornece uma abstração do hardware idêntico ao que está em uso, mas também pode simular outros diferentes do atual; 15/66

Abstração e virtualização A abstração é uma forma simples de prover alguns recursos específicos de hardware para um software, enquanto a virtualização provê um conjunto completo de recursos. 16/66

Abstração e virtualização Somente operações simples Software Software Software Software Virtualização Arquivo Arquivo Arquivo Arquivo Abstração Permite operações complexas 17/66

Tipos de Emuladores (1ª classificação) Firmware Um firmware pode ser definido como Programação em hardware; Software Toda a emulação é feita por software; Combinação ou emulação combinada ou combo O emulador é composto de hardware e software; 18/66

Tipos de Emuladores (2ª classificação) Totalmente baseada em hardware; Parcialmente baseado em hardware; Parcialmente baseada em software; Totalmente baseada em software. 19/66

Tipos de Emuladores De acordo com uso Emulação do processador; Emulação de um sistema operacional; Emulação de uma plataforma de (hardware) específico; Consoles de videogames. 20/66

Tipos de Máquinas Virtuais Tipo I o monitor é implementado entre o hardware e os sistemas convidados (guest system) Tipo II o monitor é implementado como um processo de um sistema operacional real subjacente, denominado sistema anfitrião (host system) 21/66

Tipo I Aplicação Convidado Aplicação Convidado Monitor Hardware 22/66

Tipo II Aplicação Aplicação Sistema convidado Monitor Sistema anfitrião Hardware Aplicação 23/66

Abordagens Híbridas Os monitores de tipo I e II raramente são usados em sua forma conceitual em implementações reais; Várias otimizações são inseridas com o objetivo principal de melhorar o desempenho das aplicações nos sistemas convidados 24/66

Otimizações em monitores de Tipo I O sistema convidado (guest system) acessa diretamente o hardware. Essa forma de acesso é implementada através de modificações no núcleo do sistema convidado e no monitor. 25/66

Otimizações em monitores de Tipo I Aplicação Sistema Convidado Aplicação Sistema Convidado Monitor 1 1 Hardware 26/66

Otimizações em monitores de Tipo II 1ª Abordagem O sistema convidado (guest system) acessa diretamente o sistema anfitrião (host system). Essa otimização é implementada pelo monitor, oferecendo partes da API do sistema anfitrião ao sistema convidado. 27/66

Otimizações em monitores de Tipo II 1ª Abordagem Aplicação Aplicação Aplicação Sistema Convidado Monitor Aplicação 1 Sistema Anfitrião Hardware 28/66

Otimizações em monitores de Tipo II 2ª Abordagem O sistema convidado (guest system) acessa diretamente o hardware. Essa otimização é implementada parcialmente pelo monitor e parcialmente pelo sistema anfitrião, através de um device driver específico. 29/66

Otimizações em monitores de Tipo II 2ª Abordagem Aplicação Aplicação Aplicação Sistema Convidado Monitor Aplicação 2 Sistema Anfitrião Hardware 30/66

Otimizações em monitores de Tipo II 3ª Abordagem O monitor acessa diretamente o hardware. Neste caso, um device driver específico é instalado no sistema anfitrião, oferecendo ao monitor uma interface de baixo nível para acesso ao hardware subjacente. 31/66

Otimizações em monitores de Tipo II 3ª Abordagem Aplicação Aplicação Aplicação Sistema Convidado Monitor Aplicação Sistema Anfitrião 3 Hardware 32/66

Virtualização É a interposição do software (máquina virtual) em várias camadas do sistema. É uma forma de dividir os recursos de um computador em múltiplos ambientes de execução. 33/66

Tipos de Virtualização Virtualização do hardware Virtualização do sistema operacional Virtualização de linguagens de programação 34/66

Virtualização do Hardware Exporta o sistema físico como uma abstração do hardware; Qualquer software escrito para a arquitetura (x86, por exemplo) irá funcionar. 35/66

Virtualização do Hardware Aplicação Aplicação Sistema Operacional (Linux, Windows, Unix) cpu, ram, dispositivos de E/S - Virtual Máquina Virtual Sistema Operacional (Linux, Windows, Unix) cpu, ram, dispositivos de E/S - Real 36/66

Virtualização do sistema operacional Exporta um sistema operacional como abstração de um sistema específico; A máquina virtual roda aplicações ou um conjunto de aplicações de um sistema operacional específico. 37/66

Virtualização do sistema operacional Aplicação Aplicação Sistema Operacional (Linux, Windows, Unix) - Virtual Máquina Virtual Sistema Operacional (Linux, Windows, Unix) cpu, ram, dispositivos de E/S - Real 38/66

Virtualização de linguagens de programação Cria uma aplicação no topo do sistema operacional; São desenvolvidas para computadores fictícios projetados para uma finalidade específica; A camada exporta uma abstração para a execução de programas escritos para esta virtualização. 39/66

Virtualização de linguagens de programação Aplicação Máquina Virtual Sistema Operacional (Linux, Windows, Unix) cpu, ram, dispositivos de E/S - Real 40/66

Poder da Virtualização O uso das máquinas virtuais e emuladores possibilitam: Executar um sistema operacional (e suas aplicações) sobre outro; Utilizar uma aplicação de outra plataforma operacional; Executar múltiplos sistemas operacionais; Flexibilizar uma plataforma complexa de trabalho. 41/66

Poder da Virtualização Aplicação Java Java Virtual Machine User-Mode Linux Linux VMware Windows Hardware (x86) 42/66

Poder da Virtualização Apl Apl JAIL JAIL FreeBSD Aplicação Mac Mac OS Aplicação Aplicação Linux Aplicação Windows VMware JVM UML QEMU Windows Linux XEN Hardware (x86) 43/66

Técnicas de virtualização e emulação Virtualização total (full virtualization) Paravirtualização (paravirtualization) Re-compilação dinâmica (dynamic recompilation) 44/66

Virtualização total Uma estrutura completa de hardware é virtualizado; Sistema convidado não precisa sofrer qualquer tipo de alteração; Grande compatibilidade; Perda de velocidade. 45/66

Virtualização total 0000 00FF 0FFF FFFF Memória Real Memória Virtual 0000 000F Espaço reservado pela máquina virtual para o sistema convidado. 46/66

Paravirtualização O sistema que vai ser virtualizado (sistema convidado) sofre modificações para que a interação com o monitor de máquinas virtuais seja mais eficiente; Perda de compatibilidade; Ganho de velocidade. 47/66

Re-compilação dinâmica Exploração de informações que normalmente não estão disponíveis para um compilador estático tradicional. 48/66

Re-compilação dinâmica 1. Agrupamento de bits: Usando o conhecimento sobre o formato do executável e técnicas heurísticas, conjuntos de bits são recuperados do executável e re-ordenados; 2. Desmontagem (disassembling): Os bits são desmontados e transformados para um conjunto de instruções e operadores ordenados em pares; 49/66

Re-compilação dinâmica 3. Geração intermediária do código: As instruções são transformadas para uma representação de máquina independente; 4. Decompilação: A representação gerada é transformada em uma linguagem de alto nível (como o código na linguagem C); 50/66

Re-compilação dinâmica 5. Compilação: O código gerado é novamente compilado para a nova plataforma; 6. Montagem (assembling): Os códigos são novamente montados; 7. Armazenagem dos bits: Os bits são agrupados de forma a gerar o novo executável. 51/66

Propriedades de monitores de máquinas virtuais Isolamento Inspeção Interposição Eficiência Gerenciabilidade Compatibilidade do software Encapsulamento Desempenho 52/66

Propriedades (1) Isolamento Um software em execução em uma máquina virtual não acessa ou modifica outro software em execução no monitor ou em outra máquina virtual. Inspeção O monitor tem acesso e controle sobre todas as informações do estado da máquina virtual, como estado da CPU, conteúdo de memória, eventos, etc. 53/66

Propriedades (2) Interposição O monitor pode intercalar ou acrescentar instruções em certas operações de uma máquina virtual, como por exemplo, quando da execução de instruções privilegiadas por parte da máquina virtual. Eficiência Instruções inofensivas podem ser executadas diretamente no hardware, pois não irão afetar outras máquinas virtuais ou aplicações. 54/66

Propriedades (3) Gerenciabilidade Como cada máquina virtual é uma entidade independente das demais, a administração das diversas instâncias é simplificada e centralizada. Compatibilidade de Software A máquina virtual fornece uma abstração compatível de modo que todo o software escrito para ela funcione. 55/66

Propriedades (4) Encapsulamento Esta camada pode ser usada para manipular e controlar a execução do software na máquina virtual. Pode também usar esta ação indireta para dar prioridade ao software ou fornecer um ambiente melhor para execução. Desempenho Adicionar uma camada de software a um sistema pode afetar o desempenho do software que funciona na máquina virtual, mas os benefícios proporcionados pelo uso de sistemas virtuais compensam a perda de desempenho. 56/66

Benefícios ao utilizar máquinas virtuais (1) Facilitar o aperfeiçoamento e testes de novos sistemas operacionais; Auxiliar no ensino prático de sistemas operacionais e programação ao permitir a execução de vários sistemas para comparação no mesmo equipamento; 57/66

Benefícios ao utilizar máquinas virtuais (2) Executar diferentes sistemas operacionais sobre o mesmo hardware, simultaneamente; Simular configurações e situações diferentes do mundo real, como por exemplo, mais memória disponível ou a presença de outros dispositivos de E/S; 58/66

Benefícios ao utilizar máquinas virtuais (3) Simular alterações e falhas no hardware para testes ou re-configuração de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicações; Garantir a portabilidade das aplicações legadas (que executariam sobre uma máquina virtual simulando o sistema operacional original); 59/66

Benefícios ao utilizar máquinas virtuais (4) Desenvolvimento de novas aplicações para diversas plataformas, garantindo a portabilidade destas aplicações; Diminuição de custos com hardware, através da consolidação de servidores; 60/66

Benefícios ao utilizar máquinas virtuais (5) Facilidades no gerenciamento, migração e replicação de computadores, aplicações ou sistemas operacionais; Prover um serviço dedicado para um cliente específico com segurança e confiabilidade. 61/66

Dificuldades para o uso de máquinas virtuais Processador não Virtualizado; Diversidade de equipamentos; Pré-existência de softwares. 62/66

Futuro CPU AMD e Intel anunciaram tecnologias (Pacifica e Vanderpool respectivamente) para que a virtualização sobre a plataforma x86 ocorra de forma mais natural e tranqüila. 63/66

Futuro Memória Várias técnicas tem permitido que a virtualização da memória seja mais eficiente. Pesquisas futuras devem levar aos sistemas operacionais convidados a gerenciar a memória juntamente com o monitor de máquinas virtuais (gerência cooperativa). 64/66

Futuro E/S Os dispositivos de E/S serão projetados para fornecer suporte a virtualização através de devices de alta-performance. A responsabilidade pelo acesso aos dispositivos deverá passar do monitor para o sistema convidado. 65/66

Dúvidas Se o conhecimento pode criar problemas, não é através da ignorância que podemos solucioná-los. Isaac Asimov 66/66