Introdução
Um elemento importante, que também é uma das partes mais complexas de virtualização, é a virtualização da CPU. A virtualização de uma CPU envolve duas importantes etapas:
- Multiplexar uma pCPU (CPU física) entre vCPUs (CPUs virtuais) associada a VMs (máquinas virtuais). Isso é chamado de agendamento de vCPU.
- Virtualizar o ISA de uma pCPU para fazer vCPUs com ISAs diferentes serem executadas na pCPU.
Neste módulo, apresentaremos algumas condições para virtualizar ISAs. Em segundo lugar, descreveremos a virtualização do ISA. Em um terceiro momento, faremos uma distinção entre dois tipos de virtualização do ISA: virtualização completa e paravirtualização. Em quarto lugar, abordaremos a emulação, uma importante técnica para virtualizar CPUs. Em quinto, compararemos dois tipos de VMs: VMs de SMP (multiprocessamento simultâneo) e UP (processador único). Por fim, concluiremos com uma discussão sobre o agendamento de vCPU. Como exemplos, apresentamos dois agendadores de vCPU populares do Xen.
Objetivos de aprendizagem
Neste módulo, você vai:
- Distinguir entre diferentes modos de operações em vários sistemas, como sistemas operacionais tradicionais e sistemas virtualizados.
- Identificar as três principais classes de instruções do sistema.
- Indicar a condição para habilitar hipervisores eficientes.
- Explicar como um hipervisor pode lidar com interceptações do sistema.
- Identificar a diferença entre hipervisores eficientes e hipervisores.
- Descrever por que e quando a aplicação de patch de código é necessária.
- Reconhecer a disparidade entre virtualização completa e paravirtualização.
- Explicar as vantagens e desvantagens da virtualização completa e da paravirtualização.
- Identificar a diferença entre emulação e execução nativa direta.
- Reconhecer os dois tipos de emulação: interpretação e tradução binária.
- Explicar algumas das principais técnicas de interpretação e de tradução binária.
- Comparar e contrastar os interpretadores de decodificação e despacho, direct threaded e indirect threaded.
- Identificar a diferença na alocação de CPU virtual entre máquinas virtuais de processador único e de multiprocessamento simétrico.
- Descrever os dois principais agendadores de CPU virtual no Xen: Simple Earliest Deadline First e Credit Scheduler.
Pré-requisitos
- Entender o que é a computação em nuvem, incluindo os modelos de serviço de nuvem e os provedores de nuvem comuns.
- Conhecer as tecnologias que habilitam a computação em nuvem.
- Entender como os provedores de serviços de nuvem pagam e cobram pela nuvem.
- Saber o que são os datacenters e por que eles existem.
- Saber como os datacenters são configurados, alimentados e provisionados.
- Entender como os recursos de nuvem são provisionados e medidos.
- Estar familiarizado com o conceito de virtualização.
- Saber quais são os diferentes tipos de virtualização.