A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Universidade Federal de Itajubá - UNIFEI POSCOMP Tecnologia de virtualização Intel® Suporte de Hardware para Virtualização Eficiente de Processador Wander.

Apresentações semelhantes


Apresentação em tema: "Universidade Federal de Itajubá - UNIFEI POSCOMP Tecnologia de virtualização Intel® Suporte de Hardware para Virtualização Eficiente de Processador Wander."— Transcrição da apresentação:

1 Universidade Federal de Itajubá - UNIFEI POSCOMP Tecnologia de virtualização Intel® Suporte de Hardware para Virtualização Eficiente de Processador Wander Mendes Martins 2016100575 Sistemas Operacionais Gil Neiger Amy Santoni Felix Leung Dion Rodgers Rich Uhlig Intel Corporate Intel® Technology Journal - 2006 http://www.cs.columbia.edu/~cdall/candidacy/pdf/Uhlig2005.pdf

2 Virtualização Wander Mendes Martins Virtualização é uma tecnologia de software que possibilita a execução de vários sistemas operacionais e aplicativos simultaneamente no mesmo servidor (http://www.vmware.com/br/virtualization/overview)

3 Virtualização Wander Mendes Martins Virtualização é uma tecnologia de software que possibilita a execução de vários sistemas operacionais e aplicativos simultaneamente no mesmo servidor (http://www.vmware.com/br/virtualization/overview) Em computação, virtualização é a simulação de uma plataforma de hardware, sistema operacional, dispositivo de armazenamento ou recursos de rede (https://pt.wikipedia.org/wiki/Virtualiza%C3%A7%C3%A3o)

4 Virtualização Wander Mendes Martins Virtualização é uma tecnologia de software que possibilita a execução de vários sistemas operacionais e aplicativos simultaneamente no mesmo servidor. (http://www.vmware.com/br/virtualization/overview) Em computação, virtualização é a simulação de uma plataforma de hardware, sistema operacional, dispositivo de armazenamento ou recursos de rede (https://pt.wikipedia.org/wiki/Virtualiza%C3%A7%C3%A3o) Usando as técnicas de escalonamento de CPU (Capítulo 6) e de memória virtual (Capítulo 10), um sistema operacional pode criar a ilusão de que um processo tem seu próprio processador com sua própria memória Livro texto: Sistemas Operacionais, Conceitos e Aplicações, Sílberschatz, Galvin, Gagne

5 Figura 1 MULTITAREFA

6 Figura 1 MULTITAREFA Figura 2 MULTI-NÚCLEO OU HYPER THREADING

7 Figura 1 MULTITAREFA Figura 2 MULTI-NÚCLEO OU HYPER THREADING Figura 3 VIRTUALIZAÇÃO

8 VMWare Xen Virtual PC Citryx Hyper-V

9

10 Tecnologia de Virtualização da Intel Wander Mendes Martins IA - Intel Architecture IA-32 - x86 IA-64 - Itanium

11 Tecnologia de Virtualização da Intel Wander Mendes Martins Processadores da família IA-32 e Itanium® IA-64 IA-32 (Intel Architecture, 32-bit) ou i385 é a versão do conjunto de instru ç ões x86 ISA (Instruction Set Architecture) de 32 bits, implementado pela primeira vez em 1985 no microprocessador Intel 80386. IA-32 é a primeira linha do x86 que suporta computa ç ão de 32-bit; "IA-32" é o termo que pode ser usado para se referir a todas as versões x86 que suportam processamento de 32 bits. Intel é a criadora e a maior fornecedora de processadores IA-32, e o segunda maior fornecedora é a AMD. Por um tempo, VIA, Transmeta e outros tamb é m produziram processadores IA-32, mas desde a d é cada de 2000 todos os fabricantes mudaram para a variante de 64 bits do x86, x86-64. IA-32. In: WIKIP É DIA, a enciclop é dia livre. Fl ó rida: Wikimedia Foundation, 2016. Dispon í vel em:. Acesso em: 7 jun. 2016.

12 Tecnologia de Virtualização da Intel Wander Mendes Martins Itanium (IA-64) é um microprocessador desenvolvido pela Intel e pela HP, para plataformas SMP (Symmetric multiprocessing ) de 64 bits que não usam nem RISC (Reduced instruction set computing) nem CISC (Complex instruction set computing) e sim uma arquitetura nova chamada pela Intel de EPIC (Explicitly parallel instruction computing). ITANIUM. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2016. Disponível em:. Acesso em: 7 jun. 2016.https://pt.wikipedia.org/w/index.php?title=Itanium&oldid=45156991 Processadores da família IA-32 e Itanium®

13 Wander Mendes Martins Desafios VT VT-x VT-i Tecnologia de Virtualização da Intel

14 Wander Mendes Martins Processadores da família IA-32 e Itanium® IA-64 Existem vários desafios para se implementar virtualização usando estes processadores O artigo trata destas dificuldades técnicas e como foram solucionadas VT = Conjunto de recursos de hardware que facilitam a virtualização nos processadores da Intel. VT-x = VT para processadores IA-32 (Vandepool) VT-i = VT para processadores Itanium IA-64 Tecnologia de Virtualização da Intel

15 Wander Mendes Martins Como saber se o processador tem VT

16 Tecnologia de Virtualização da Intel Wander Mendes Martins Como sabre se o processador tem VT https://downloadcenter.intel.com/download/7838

17 Tecnologia de Virtualização da Intel Wander Mendes Martins ( - ) Problemas VMM (Monitor de Máquina Virtual) (HYPERVISOR). Menores Mais símples + SOs https://en.wikipedia.org/wiki/Comparison_of_platform_virtualization_software

18 Tecnologia de Virtualização da Intel Wander Mendes Martins Instruções Instruções Privilegiadas Instruções Não Privilegiadas Modos Usuário ou Espaço de Aplicação Supervisor

19 Tecnologia de Virtualização da Intel Wander Mendes Martins

20 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Wander Mendes Martins Domínios Hierárquicos de Proteção – Arquitetura de Anel 2 bits

21 Wander Mendes Martins – 01 – PROTEÇÃO BASEADA EM NÍVEL DE PRIVILÉGIO

22 Wander Mendes Martins Características (Problemas – Dificuldades – Desafios) 01 - Proteção baseada em conceito de nível de privilégio de 2 bits 0 = programas de maior privilégio 3 = programas de menor privilégio FP (Funções privilegiadas) controlam as funções básicas da CPU O nível de privilégio: determina se as FP podem ser executadas sem riscos controla o acesso a table spaces e registradores A maioria dos softwares IA usam apenas os níveis 0 e 3. VMM executa em nível 0. Para um SO controlar a CPU, alguns de seus componentes precisam ter privilégio 0. Como um VMM não pode permitir que um SO convidado tenha controle da CPU, este não poderá executar no nível de privilégio 0. A VMM precisa usar uma técnica chamada desprivilegiamento de anel (“ring deprivileging”), que executa uma aplicação em um nível de privilégio menor do que aquele para o qual foi projetada. Um SO convidado pode ser “desprivilegiado” de duas maneiras: a) executar no nível de privilégio 1, para o modelo 0/1/3 b) executar no nível de privilégio 3, para o modelo 0/3/3

23 Wander Mendes Martins Características (Problemas – Dificuldades – Desafios) Modelos Operacionais (a) Sistema não virtualizado (b) Modelo 0/1/3 de ring deprivileging. (c) Modelo 0/3/3 de ring deprivileging. (d) Sistema usando a Intel VT

24 Wander Mendes Martins – 02 – RING ALIASING

25 Wander Mendes Martins Características (Problemas – Dificuldades – Desafios) 02- RING ALIASING P roblemas que surgem quando o software é escrito para ser executado em um nível de privilégio e é executado em outro Um exemplo em IA-32 envolve o registrador de segmento, CS, que aponta para o segmentode código. Se a instrução PUSH é executada com o registrador de segmento CS, o conteúdo desse registrador (que inclui o nível de privilégio atual) é empurrado para a pilha. Da mesma forma, a instrução Itanium BR.CALL salva o nível de privilégio atual no campo ppl do registrador Estado Função Anterior (PFS), que pode ser lido em qualquer nível de privilégio. Em ambos os casos, um sistema operacional convidado poderia facilmente perceber que não está sendo executado no nível de privilégio 0.

26 – 03 – COMPRESSÃO ESPACIAL DE ENDEREÇO Wander Mendes Martins

27 Características (Problemas – Dificuldades – Desafios) 03- COMPRESSÃO ESPACIAL DE ENDEREÇO O SO espera ter acesso ao espaço de endereço do processador (real/virtual). O VMM deve reservar para si uma parte do espaço de endereço virtual do hóspede Poderia funcionar inteiramente no espaço de endereço virtual do hóspede, o que permitiria fácil acesso aos dados do hóspede. Mas as instruções e estruturas de dados do VMM usariam muita memória do espaço virtual hóspede O VMM precisa impedir o acesso do SO guest em seu espaço de memória. Se o guest gravar o VMM perderá sua integridade Se o guest ler, descobrirá que está rodando em uma VM As tentativas de acesso do guest a estas áreas de memória restritas, devem ser percebidas e tratadas pelo VMM emulando e dando suporte ao guest Compressão de Espaço de Memória é o termo usado para esta tarefa de proteção. Wander Mendes Martins

28 Características (Problemas – Dificuldades – Desafios) 03- COMPRESSÃO ESPACIAL DE ENDEREÇO Como alternativa o VMM pode ser executado em um espaço de endereço separado. Mesmo assim, ainda deve usar uma quantidade mínima de espaço do endereço virtual do convidado para as estruturas de controle que gerenciam as transações entre os aplicativos do guest e o VMM. Para a IA-32, estas estruturas incluem a Tabela Descritor de Interrupção (IDT) e a Tabela Descritor Global (GDT) que ficam no espaço de endereço linear. Para a arquitetura Itanium, as estruturas incluem a Tabela Vetor de Interrupção (IVT), que fica no espaço de endereço virtual. O VMM deve impedir o acesso do guest a estas partes de espaço de endereço virtualizado do guest que o VMM está usando. Para evitar: que o hóspede grave neste espaço comprometendo a integridade do VMM que o hóspede detecte que está sendo executado em uma máquina virtual (já que ele pode ler este espaço) O convidado tenta acessar esta parte da memória gerando transações para o VMM que pode emular o outro lado e apoiá-lo. O termo compressão do espaço virtual refere-se ao desafio de proteger este espaço de memória e apoiar o hóspede ao tentar usá-lo. Wander Mendes Martins

29 – 04 – NON-FAULTING ACCESS TO PRIVILEGED STATE

30 Características (Problemas – Dificuldades – Desafios) 04- NON-FAULTING ACCESS TO PRIVILEGED STATE Acesso sem falha ao estado privilegiado. Proteção baseada em privilégio impede que softwares sem privilégios acessem certos componentes de status da CPU. Na maioria dos casos, as tentativas de acesso causam falhas, permitindo a um VMM emular a instrução hóspede desejada. Mas IA-32 e Itanium possuem instruções que acessam status privilegiados e não falham quando executadas sem privilégio. Em IA-32, por exemplo, registradores GDTR, IDTR, LDTR e TR contém ponteiros para estruturas de dados que controlam a operação da CPU. Softwares só podem executar as instruções que gravam e lêem estes registradores, LGDT, LIDT, LLDT e LTR no nível de privilégio 0. Mas, softwares podem executar as instruções que gravam e lêem estes registradores SGDT, SIDT, SLDT e STR em qualquer nível de privilégio. Se o VMM mantém estes registradores com valores inesperados para o Guest, este, usando as últimas instruções, poderia perceber que não tem controle total da CPU. Algo semelhate acontece com Itanium, na tabela de endereço de páginas (PTA).

31 – 05 – ADVERSE IMPACT ON GUEST SYSTEM CALLS Wander Mendes Martins

32 Características (Problemas – Dificuldades – Desafios) 05- ADVERSE IMPACT ON GUEST SYSTEM CALLS Impacto Negativo nas Chamadas do Sistema Convidado A ação de desprivilegiar anéis pode interferir no desempenho das funções que aceleram a entrega e manuseio de transições (mudanças de contexto) para o SO. Instruções IA SYSENTER e SYSEXIT. SYSENTER sempre efetua transição para privilégio 0 SYSEXIT falha se executar fora daquele camada ou nível de privilegio (anel / ring) Convidado executando SYSENTER causa transição para o VMM e não para o convidado. O VMM deve emular toda execução SYSENTER do convidado. Convidado executando SYSEXIT causa falhas para o VMM que deve emular toda execução SYSEXIT do convidado. Wander Mendes Martins

33 – 06 – INTERRUPT VIRTUALIZATION Wander Mendes Martins

34 Características (Problemas – Dificuldades – Desafios) 06-INTERRUPT VIRTUALIZATION Virtualização de Interrupção Fornecer suporte para as interrupções externas, especialmente em relação a mascaramento de interrupção, traz alguns desafios específicos ao projeto do VMM. IA-32 e Itanium IA-64 oferecem mecanismos para mascarar as interrupções externas impedindo assim sua entrega quando o SO não está pronto para elas. IA-32 usa sinalizador de interrupções (IF) nos registradores EFLAGS para controlar o mascaramento das interrupções. Itanium usa o bit ( i ) no registrador de estado do processador PSR para fazer isto. Em ambos os casos um valor 0 indica que as interrupções são mascaradas. O VMM gerencia as interrupções externas e nega ao convidado o controle do mascaramento de interrupções. Isto pode causar problemas porque alguns SOs convidados frequêntemente mascaram e desmascaram interrupções Wander Mendes Martins

35 – 07 – ACCESS TO HIDDEN STATE Wander Mendes Martins

36 Características (Problemas – Dificuldades – Desafios) 07-ACCESS TO HIDDEN STATE ACESSO AO ESTADO OCULTO Os estados de alguns componentes dos processadores Itanium e IA-32 não estão representados em nenhum registrador acessível por software. Exemplos para IA-32 incluem os Descritores de Caches ocultos para os registradores de segmento. Na arquitetura Itanium, há um campo no registrador RSE chamado CFLE. Não há nenhuma maneira direta para escrever este valor. Há casos em que o VMM pode tomar uma interrupção externa e querer retornar para o OS convidado com este valor igual a zero. O retorno de interrupção RFI obriga este valor para um. A arquitetura IA-32 não possui nenhum mecanismo que salve e recupere os componentes ocultos do contexto do SO guest durante a troca de máquinas virtuais, ou os preserve enquanto o VMM está sendo executado. Wander Mendes Martins

37 – 08 – RING COMPRESSION Wander Mendes Martins

38 Características (Problemas – Dificuldades – Desafios) 08-RING COMPRESSION COMPRESSÃO DE NÍVEL DE PRIVILÉGIO Para proteger o VMM de SO visitantes, estes são executados no ring 3 (0/3/3), então tanto o guest quanto as aplicações sobre o guest são executadas no mesmo nível de privilégio deixando o guest vulnerável IA-32 inclui dois desses mecanismos: limites do segmento e paginação. Como os limites do segmento não se aplicam no modo de 64 bits, a paginação deve ser utilizado neste modo. Como paginação em IA-32 não distingue os níveis de privilégio 0-2, o SO guest deve executar pelo nível de privilégio 3 (o modelo 0/3/3). Wander Mendes Martins

39 – 09 – FREQUENT ACCESS TO PRIVILEGED RESOURCES Wander Mendes Martins

40 Características (Problemas – Dificuldades – Desafios) 09-FREQUENT ACCESS TO PRIVILEGED RESOURCES ACESSO FREQUENTE AOS RECURSOS PRIVILEGIADOS O VMM pode impedir o acesso de convidado aos recursos privilegiados, forçando tentativas de tais acessos a falha. Mesmo quando isso garante um comportamento correto, o desempenho pode ser comprometido se a freqüência de tais falhas é excessivo. Nas arquiteturas IA-32 e Itanium, um exemplo envolve o registrador de tarefas com prioridade (TPR). Para a arquitetura IA-32, este registro está localizado no controlador de interrupção programável avançado (APIC), e para a arquitetura Itanium, é um dos registradores de controle. Como controla a priorização de interrupção, um VMM não deve permitir acessos de um SO guest para o TPR. No entanto, alguns SO´s guest realizam tais acessos com freqüência muito alta. Wander Mendes Martins

41 ADDRESSING VIRTUALIZATION CHALLENGES IN SOFTWARE Enfrentando os desafios de virtualização em SOFTWARE SOLUÇÕES EM SOFTWARE

42 ADDRESSING VIRTUALIZATION CHALLENGES IN SOFTWARE Enfrentando os desafios de virtualização em SOFTWARE VIRTUALIZAÇÃO TOTAL (FULL) PARAVIRTUALIZAÇÃO

43 ADDRESSING VIRTUALIZATION CHALLENGES IN SOFTWARE Enfrentando os desafios de virtualização em SOFTWARE Para enfrentar as dificuldades de virtualização com a IA-32 e Itanium, os projetistas de VMM desenvolveram técnicas criativas para modificar o software do convidado (fonte ou binário).. Na virtualização total, o SO guest tenta executar tarefas protegidas e, por estarem no espaço de aplicação do SO host, não podem ser executadas. Então, o VMM intervém e executa ou simula a execução dessas tarefas, reduzindo o desempenho. Na paravirtualização o SO guest é modificado para não tentar executar diretamente na CPU as tarefas protegidas, mas entregá-las ao VMM, obtendo ganho de desempenho.

44 ADDRESSING VIRTUALIZATION CHALLENGES IN SOFTWARE Enfrentando os desafios de virtualização em SOFTWARE Denali e Xen são exemplos de VMMs que usam paravirtualização. Desenvolvedores desses VMMs modificam o código fonte de um sistema operacional convidado para criar uma interface que é mais fácil de virtualizar. Paravirtualização oferece alto desempenho.. Wander Mendes Martins Uma desvantagem de paravirtualização é que limita a gama de sistemas operacionais suportados VMMs que dependem de paravirtualização não podem suportar um SO cujo código fonte os desenvolvedores do VMM não tem modificações.

45 ADDRESSING VIRTUALIZATION CHALLENGES IN SOFTWARE Enfrentando os desafios de virtualização em SOFTWARE O VMM pode suportar OSs sem modificações, transformando binários de OS convidado para lidar com as operações sensíveis a virtualização VMMs que usam tais técnicas de tradução binários incluem os desenvolvidos pela Vmware, bem como o Virtual PC e Virtual Server da Microsoft. Tais VMMs apoiam uma ampla gama de SO´s para paravirtualização Um objetivo central do projeto para a Intel VT tem sido a de eliminar a necessidade de técnicas de tradução binária de paravirtualização e, simplificar a implementação de VMMs robustos que podem suportar uma ampla gama de OSs convidados não modificados e manter altos níveis de desempenho. Wander Mendes Martins

46 ADDRESSING VIRTUALIZATION CHALLENGES IN HARDWARE Enfrentando os desafios de virtualização em HARDWARE SOLUÇÕES EM HARDWARE

47 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VT-x VT-i Wander Mendes Martins

48 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VT-x Incrementa IA-32 com duas novas formas de operação da CPU: Wander Mendes Martins

49 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VT-x Incrementa IA-32 com duas novas formas de operação da CPU: Operação VMX Root : Usada por VMM e se parece muito com IA-32 sem VT-x Operação VMX Non-Root: Ambiente controlado por um VMM e projetado para suportar uma VM Ambos apoiam todos os níveis de privilégios permitindo ao software convidado executar no seu nível de privilégio desejado proporcionando ao VMM flexibilidade para usar vários níveis de privilégio Define duas novas transições Transição da operação VMX de Root para VMX Non Root – Entrada VM Transição da operação VMX de Non Root para VMX Root – Saída VM Entrada VM e Saída VM são administradas por uma nova estrutura de dados chamada VMCS. Estrutura de Controle de Máquina Virtual A VMCS inclui área de estado do convidado (guest state area) área de estado do host (host state área). Wander Mendes Martins

50 z INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VT-x A VMCS inclui área de estado do convidado(guest state area) área de estado do host (host state área). Wander Mendes Martins

51 z INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VT-x A VMCS inclui área de estado do convidado(guest state area) área de estado do host (host state área). Cada uma contém campos correspondentes a estados de diversos componentes do processador Entrada VM lê o estado do processador da área de estado do convidado Saída VM grava o estado do processador na área de estado do convidado e lê o estado do processador da área de estado do host. A operação do processador muda muito na operação VMX Non-Host. A mudança mais importante é que muitas instruções e eventos causam Saída VM. Algumas instruções como a INVD causam Saída VM incondicionalmente e nunca podem ser executadas na operação VMX Non-Host. Outras instruções como INVLPG e todos os eventos podem ser configurados para fazer isto condicionalmente, usando o campo VMCS Execution Control Fields. Wander Mendes Martins

52 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Àrea de estado do convidado (guest state area) Usada para armazenar os estados dos elementos da CPU virtual associada a este VMCS. Para um funcionamento adequado, alguns registros precisam ser lidos para cada Saída-VM. Em IA-32 é o caso dos registros que gerenciam operações do processador, como os registros de segmento (mapear endereços lógicos) e o CR3 (mapear endereços físicos), IDTR para entrega de eventos, e muitos outros. A área de estado de convidado contém campos para estes registros podendo salvar seus valores como parte de cada Saída-VM. E ainda possui campos para os estados de elementos do processador que nenhuma software poderia registrar, como o estado de interruptibilidade do processador, que indica se as interrupções externas estão temporariamente mascaradas ou não. E não possui campos correspondentes aos registros que só podem ser salvos e lidos pelo próprio VMM (ex. registro de uso geral). Esta exclusão de registros melhora o desempenho de Entradas- VM e Saídas-VM. Wander Mendes Martins

53 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VM-EXECUTION CONTROL FIELDS (VMCS) Campos de controle VM-Execution Wander Mendes Martins VMCS contém de campos que controlam a operação VMX non-root especificando as instruções e eventos que causam saídas VM.

54 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VM-EXECUTION CONTROL FIELDS (VMCS) Campos de controle VM-Execution VMCS inclui controles que suportam virtualização de interrupção: Saída de Interrupção Externa: Quando esse controle está definido, todas as interrupções externas causam saídas VM; Além disso, o cliente não é capaz de mascarar certas as interrupções (por exemplo, as interrupções são não mascarado se EFLAGS.IF = 0). Saída Janela de Interrupção (Interrupt-window exiting): Quando este controle é setado. Uma Saída-VM ocorre sempre que o software convidado está pronto para receber interrupções (ex EFLAGS.IF=1) Wander Mendes Martins

55 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® VT-i Incrementa arquitetura Itanium com extensões para o hardware do processador e o firmware Camada de Isolamento do Processador (PAL- Processor Abstraction Layer) VT-i adiciona um novo PSR bit, o PSR.vm que permite que o OS convidado seja executado no nível de privilégio para o qual foi projetado e cria interceptações para o VMM necessárias para a criação de uma VM completa. O VMM roda com PSR.vm = 0 e o software convidado com PSR.vm = 1. Isto permite administrar os acessos de instruções não privilegiadas que desejam acessar espaços que o VMM deseja controlar. Quando o OS convidado executa uma destas instruções, ocorre uma interceptação de virtualização que transfere o controle para o VMM com o PSR.vm setado em 0; Isto permite que o OS convidado execute no nível de privilégio para o qual foi projetado. Wander Mendes Martins

56 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® SOLVING VIRTUALIZATION CHALLENGES WITH VT-X AND VT-I Resolvendo os desafios de virtualização com VT-x e VT-I VT-x e VT-i permitem que o software convidado execute no seu nível de privilégio desejado. O software convidado está limitado, mas não pelo nível de privilégio, mas porque para VT-x que usa operação VMX Non Root ou para VT-i que usa PSR.vm = 1. Estes fatos permitem ao VMMs evitar os problemas de virtualização identificados anteriormente. Wander Mendes Martins

57 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® SOLVING VIRTUALIZATION CHALLENGES WITH VT-X AND VT-I Resolvendo os desafios de virtualização com VT-x e VT-I VT-x e VT-i permitem que o software convidado execute no seu nível de privilégio desejado. O software convidado está limitado, mas não pelo nível de privilégio, mas porque para VT-x que usa operação VMX Non Root ou para VT-i que usa PSR.vm = 1. Estes fatos permitem ao VMMs evitar os problemas de virtualização identificados anteriormente. Veremos como cada desafio é solucionado Wander Mendes Martins

58 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Address-Space Compression A compressão do espaço de endereço VT-x e VT-i fornecem duas técnicas diferentes para resolver problemas de compressão do espaço de endereço. Com VT-x, a cada transição entre software convidado e o VMM altera o espaço de endereço linear, permitindo que o software convidado use do seu próprio espaço de endereço. As transições VMX são administradas pelo VMCS, que está no espaço de endereço físico, e não no espaço de endereço linear. Com VT-i, o VMM tem uma porção de endereço virtual que software hóspede não pode usar. A VMM pode ocultar o suporte de hardware para este bit, interceptando chamadas de hóspedes para o procedimento PAL que informa o número de bits do endereço virtuais implementadas. Como resultado, o convidado não vai esperar para usar este espaço de endereço reservado ao VMM, e o hardware não vai permitir que ele o use, proporcionando assim o uso exclusivo VMM de metade do espaço de endereço virtual. Wander Mendes Martins

59 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Ring Aliasing and Ring Compression VT-x e VT-i permitem ao VMM executar software de hóspedes no seu nível de privilégio pretendido. Este fato elimina problemas ring aliasing porque as instruções como Push (de CS) e br.call não podem revelar que o software está sendo executado em uma máquina virtual. Ele também elimina problemas de compressão do anel que surgem quando um sistema operacional convidado executa ao mesmo nível de privilégio das aplicações de hóspedes, uma vez que não estará no mesmo nível que elas, mas em seu próprio nível de privilégio. Wander Mendes Martins

60 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Nonfaulting Access to Privileged State Acesso Sem Falhas a Estado Privilegiado Wander Mendes Martins Um VMM baseado na VT-x ou VT-i não precisa controlar o nível de privilégio do guest e a VMCS sabe se as interrupções e exceções são reais. O VMM pode permitir que o guest acesse os registradores GDT, IDT, LDT e TSS. A VT- x que um software visitante que esteja executando no ring 0 use as instruções Load LGDT, LIDT, LLDT e LTR Store SGDT, SIDT, SLDT e STR.

61 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Guest System Calls Chamadas do sistema de convidado Problemas ocorriam com a IA-32 instruções SYSENTER e SYSEXIT quando um SO guest era executado fora nível de privilégio 0. Com VT-x, e VT-i, um OS convidado pode ser executado em nível de privilégio 0, o que elimina os problemas associados com as transições de guests. Wander Mendes Martins

62 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Interrupt Virtualization Virtualização de interrupção VT-x e VT-i fornecem suporte explícito para a virtualização de interrupção. VT-x-inclui uma Saída de Interrupção Externa. Quando esse controle é 1, o VMM impede o convidado de controlar o mascaramento de interrupção sem precisar interceptar todas as tentativas de hóspedes para modificar EFLAGS.IF. Da mesma forma, VT-i inclui um campo que sinaliza virtualização que impede que o software convidado afete mascaramento de interrupção e evita fazer transições para o VMM em cada acesso ao bit PSR.i. Wander Mendes Martins

63 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® ACCESS TO HIDDEN STATE Acesso ao estado oculto VT-x e VT-i usam diferentes técnicas para permitir ao VMM manipular estado de componentes de hóspedes que não são representadas em qualquer registro de software acessível. VT-x inclui, na área de estado do guest da VMCS, os campos correspondentes ao estado da CPU não representada em qualquer registo de software acessível. Os valores do processador são lidos em Entrada-VM e salvos em cada Saída VM. Isso proporciona o suporte necessário para preservar este estado enquanto o VMM está em execução ou quando se muda de VMs. VT-i fornece uma maneira para o VMM definir o bit RSE CFLE para o valor desejado através de um valor de argumento no serviço PAL usado para retornar para os manipuladores de interrupção do convidado. Wander Mendes Martins

64 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Frequent Access to Privileged Resources Acesso Frequente aos Recursos Privilegiados VT-x e VT-i permitem que ao VMM evitar a sobrecarga de alta frequência de acesso de hóspedes ao registro TPR. Um VMM pode configurar o VMCS (por VT-x) ou utilizar uma aceleração (por VT-i), de modo que o VMM é invocada somente quando necessário. Para VT-x isto ocorre quando o valor de TPR associado com o VMCS cai abaixo de um limiar no TPR VMCS. Para VT-i isso ocorre somente quando a escrita do TPR desmascara uma interrupção externa virtual pendente para o hóspede. Wander Mendes Martins

65

66 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Wander Mendes Martins

67 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Wander Mendes Martins

68 INTEL® VIRTUALIZATION ARCHITECTURE OVERVIEW Visão Geral da Arquitetura da Virtualização Intel® Obrigado! Wander Mendes Martins http://www.clubedohardware.com.br/artigos/tudo-o-que-voce-precisa-saber-sobre-a-tecnologia- de-virtualizacao-da-intel/1144


Carregar ppt "Universidade Federal de Itajubá - UNIFEI POSCOMP Tecnologia de virtualização Intel® Suporte de Hardware para Virtualização Eficiente de Processador Wander."

Apresentações semelhantes


Anúncios Google