Disciplina:DEE355 - Sistemas Operacionais - Virtualização
Universidade Federal do Paraná
Professor: Prof. Jéfer – jefer@ufpr.br
Objetivos: Compreender os conceitos, técnicas e aplicações da virtualização, além de analisar sua importância para a computação em nuvem e a evolução dos sistemas operacionais.
Definição: Tecnologia que permite criar versões abstratas de recursos computacionais (CPUs, memória, armazenamento e dispositivos de E/S) para executar múltiplos sistemas ou aplicações isoladamente em um único hardware físico.
Importância:
Histórico:
Relação com a nuvem: É a base para a alocação dinâmica de recursos em modelos IaaS (Infraestrutura como Serviço).
Contexto atual: Além das máquinas virtuais tradicionais, tecnologias como containers (Docker) e orquestradores de containers (Kubernetes) estão revolucionando a virtualização, oferecendo maior leveza e escalabilidade para aplicações modernas.
Máquina Virtual (VM):
Hipervisor (VMM - Virtual Machine Monitor):
Virtualização Completa vs. Paravirtualização:
Benefícios da Virtualização:
Evolução: Além das VMs tradicionais, tecnologias como containers (Docker) e orquestradores (Kubernetes) estão revolucionando a virtualização, oferecendo soluções mais leves e escaláveis para aplicações modernas.
Máquinas Virtuais de Sistema:
Máquinas Virtuais de Processo:
Destaque para o VirtualBox:
Evolução: Enquanto as máquinas virtuais de sistema emulam um SO completo, tecnologias como containers (Docker) oferecem uma abordagem mais leve, virtualizando apenas o necessário para executar aplicações. Isso será explorado em detalhes mais adiante.
Hipervisor Tipo 1 (Bare-metal):
Hipervisor Tipo 2 (Hosted):
Comparação:
Característica | Tipo 1 (Bare-metal) | Tipo 2 (Hosted) |
---|---|---|
Desempenho | Alto (executa diretamente no hardware) | Moderado (depende do SO hospedeiro) |
Uso | Data centers, servidores | Desktops, testes, desenvolvimento |
Complexidade | Alta (requer configuração especializada) | Baixa (fácil de configurar e usar) |
Evolução: Além dos hipervisores tradicionais, tecnologias como containers (Docker) e orquestradores (Kubernetes) estão ganhando espaço, oferecendo soluções mais leves e escaláveis para virtualização de aplicações. Isso será explorado em detalhes mais adiante.
Implementações: VMware ESXi utiliza nested paging; KVM integra com o kernel Linux para eficiência.
Desafios:
Técnicas de Virtualização de E/S:
Contexto Atual:
Desafios:
Técnicas de Virtualização em CPUs Multicore:
Exemplos Práticos:
Contexto Atual:
História:
Produtos Principais:
Desafios e Soluções:
VirtualBox:
Contexto Atual:
Relação entre Virtualização e Nuvem:
Benefícios da Virtualização na Nuvem:
Serviços de Nuvem:
Amazon AWS:
Contexto Atual:
Evolução: Além da virtualização tradicional, tecnologias como contêineres (Docker) e orquestradores (Kubernetes) estão ganhando espaço, oferecendo maior leveza e escalabilidade para aplicações modernas em ambientes de nuvem.
Tópicos Atuais de Pesquisa:
Contêineres e Serverless:
Integração com IA e Edge Computing:
Contexto Atual:
Resumo:
Importância:
Perspectivas Futuras:
Reflexão Final:
- Maziero, C. Virtualização - SOCM. Disponível em: https://wiki.inf.ufpr.br/maziero/doku.php?id=socm:start
- Tanenbaum, A. S. Sistemas Operacionais Modernos. Capítulo 7: Virtualização e a Nuvem.
- Silberschatz, A., Galvin, P. B., & Gagne, G. Sistemas Operacionais com Java. Capítulo 16: Virtualização.
- Documentação oficial VMware: https://www.vmware.com
- Artigos sobre KVM e Xen: https://www.linux-kvm.org, https://xenproject.org
Responda as seguintes questões:
Responda as seguintes questões:
Hipervisor Tipo 1 roda diretamente no hardware (bare-metal), oferecendo melhor desempenho e escalabilidade, enquanto o Tipo 2 roda como aplicação em um sistema operacional, sendo mais simples de instalar, porém com desempenho inferior.
Os benefícios incluem maior utilização dos recursos, isolamento entre ambientes, redução de custos operacionais, facilidade de migração de VMs e escalabilidade dinâmica.
A AWS utiliza a virtualização para provisionar instâncias (EC2) sob demanda, permitindo escalabilidade, alta disponibilidade e a otimização de recursos através de técnicas como balanceamento de carga e auto scaling.
Os desafios incluem alta latência e compatibilidade. Técnicas como pass-through, SR-IOV e emulação de dispositivos ajudam a reduzir a sobrecarga e melhorar o desempenho.