Tecniche di virtualizzazione di processori Intel-AMD. Gianluca Guida

Documenti analoghi
Tecnologie di virtualizzazione

Cenni sulla virtualizzazione

ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE

Cenni sulla virtualizzazione


Virtualizzazione. Dott. Luca Tasquier.

Cenni sulla virtualizzazione

Copyright (c) 2008, 2009, 2010 Fabio Proietti

Francesco V. Buccoli Microsoft Student Evangelist

Guida alla realizzazione di un'antenna a stilo con cavo coassiale. Drosophila -

Linux Virtuale. Virtualizzazione, ovvero?

Le virtual machine e la memoria virtuale

Copyright (c) 2008, 2009, 2012 Fabio Proietti

Architetture software. Virtualizzazione

Modulo 5: Programmazione di sistema --- Parte A: Introduzione alle system call

Cenni sulla virtualizzazione

Cenni sulla virtualizzazione

MIKONOS: criteri di valutazione del progetto

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Guida alla realizzazione di un'antenna collineare omnidirezionale a 21 dipoli. Drosophila -

Calcolatori Elettronici A a.a. 2008/2009

Virtualizzazione e macchine virtuali. Presentata da Bernardo Lombardi

Laboratorio di Sistemi Operativi Anno Accademico

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

Virtualization & Container. Systems Integration

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

Le virtual machine e la memoria virtuale

Protezione del Kernel Tramite Macchine Virtuali

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

Architettura del processore e esecuzione delle istruzioni

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Tabelle in LATEX 2ε? No Problem!

Virtualizzazione. Tanenbaum, A.S. and Bos, H. Modern Operating Systems, fourth edition. Pearson, Chapter 7, Virtualization and the Cloud

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

Copyright (c) 2008, 2009, 2010 Fabio Proietti

Università degli Studi di Napoli Federico II Facoltà di Ingegneria

LA VIRTUALIZZAZIONE CASE STUDY CAMPUS DI CESENA

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM

Architetture per l implementazione di macchine virtuali

Modulo 9 Pipe e FIFO

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

memoria virtuale protezione

Copyright (c) 2008, 2009, 2010 Fabio Proietti

Programmazione. Andrea Passerini Informatica. Programmazione

Macchina di Riferimento: argomenti

Struttura dei Sistemi di Calcolo

Trasparenze del Corso di Sistemi Operativi

Modulo 7: Gestione della Memoria

GESTIONE DELLA MEMORIA CENTRALE

Corso di Architettura (Prof. Scarano) 10/05/2002

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie

Sistemi Operativi. Lezione 3 Processi e Thread

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 25 settembre 2008.

permette di utilizzare lo stesso programma su CPU diverse (con opportuni traduttori)

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Lezione XII: La gestione delle eccezioni in MINIX

La gestione della memoria su IA-32. Lez. 32 Sistemi Operativi

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Programmazione. Andrea Passerini Informatica. Programmazione

Virtualizzazione. Tanenbaum, A.S. and Bos, H. Modern Operating Systems, fourth edition. Pearson, Chapter 7, Virtualization and the Cloud

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Carlo, Pelliccioni Security

Università degli Studi di Bologna STUDIO PER SOLUZIONI DI VIRTUALIZZAZIONE SU PIATTAFORMA MULTICORE PER APPARATI DI TELECOMUNICAZIONE

Traduzione e interpretazione

Sistemi per la Virtualizzazione

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 16. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011

Oracle Retail MICROS Stores2 Functional Document Customers - Homonyms Release March 2016

Sistema Operativo (Software di base)

Struttura dei Sistemi di Calcolo

Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica. Corrado Santoro

Cognome: Nome: Matricola:

Memoria Secondaria o di Massa

BACKUP MULTIPIATTAFORMA ON PREMISE, RIMOVIBILE, DECENTRALIZZATO E CLOUD IBRIDIO

Le virtual machine e la memoria virtuale

MACCHINE VIRTUALI. Introduzione. » Creare una astrazione di un computer per creare diversi ambienti di esecuzione. » Componenti SISTEMI OPERATIVI

Virtualizzazione di sistema

Macchine Virtuali. Docente: Fabio Tordini

Copyright (c) 2008, 2009, 2012 Fabio Proietti

Introduzione. Virtualizzazione. Fabio Proietti (c) 2014 Licenza:

Astrazione e Macchine Virtuali. parte 1: in generale

Introduzione. Virtualizzazione. Fabio Proietti (c) 2014 Licenza:

Virtualizzazione con OpenVZ

Concetti Generali sulla Gestione della memoria

Sistemi operativi. Lez. 18 Interrupt ed Eccezioni in IA-32. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

Tecnologie di virtualizzazione per il consolidamento dei server

Calcolatori Elettronici

Cognome: Nome: Matricola:

Virtualizzazione di sistema

Sistemi Operativi. Introduzione. C.d.L. in Informatica (laurea triennale) Anno Accademico Dipartimento di Matematica e Informatica Catania

Processi nei Sistemi Distribuiti

Sistemi Operativi. Modulo 8: Gestione I/O, Memoria secondaria

Architettura di un linguaggio dinamico

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Transcript:

Tecniche di virtualizzazione di processori Intel-AMD Gianluca Guida

Copyright (c) 2006 Gianluca Guida Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

Cos'e' la virtualizzazione. efficient, isolated duplicate of the real machine ; VM VM VMM Machine VM VM

Da ISA reale a ISA virtuale ABI, actually. Instruction Set Architecture OS OS OS OS VMM ISA Reale ISA Virtuale Machine Es ISA: IA32, AMD64, MIPS; In questo talk: ISA reale == ISA virtuale

Virtual Machine Monitor 1/2 Proprieta' di un VMM (Popek Goldberg, 1974) Fidelity. Ambiente di esecuzione dei processi sostanzialmente identico alla macchina; Performance. Overhead della virtualizzazione realativamente basso (prestazione VM comparabile a prestazione macchina fisica) Safety. VMM controlla e gestisce le risorse fisiche;

Virtual Machine Monitor 2/2 Architettura concettuale di un VMM: CPU virtualization (ISA) I/O virtualization (virtual devices) Gestione risorse fisiche In questo talk: CPU virtualization nell'architettura IA32/AMD64 (etc...)

Modello Ideale di CPU 1/2 CPU Trap Privileged (System Code) I/O + System Mem Unprivileged (Applications) Applications Memory

Modello Ideale di CPU 2/2 Istruzioni interessanti ai fini della virtualizzabilita': Sensitive Instructions: eseguite in Privileged Mode cambiano lo stato del sistema. Privileged Instructions: possono essere eseguite solo in Privileged mode; in Unprivileged mode causano traps. La classificazione dell'isa in questo tipo di istruzioni e' ortogonale. (ci possono istruzioni sensitive non privileged e viceversa)

Tecnica classica di virtualizzazione Trap and Emulate 1/2 CPU VMM emula istruzioni privilegiate (che generano un Trap). VMM I/O + System Mem CPU Virtuale Virtual Machine Memory

Tecnica classica di virtualizzazione Trap and Emulate 2/2 Il VMM viene eseguito in Privileged Mode; Le istruzioni delle CPU virtuali (sia in Privileged che in Unprivileged Mode) vengono eseguite sulla CPU fisica in Unprivileged Mode. Quando la CPU virtuale prova ad eseguire un'istruzione privilegiata viene generato il fault (Trap). Il Trap viene gestito dal VMM che emula gli effetti dell'istruzione privilegiata sulla CPU virtuale (Emulate).

Tecnica classica di virtualizzazione Condizioni per la virtualizzabilita' in senso classico 1/2 Se esistono istruzioni sensitive ma non privileged allora la VCPU non generera' un fault. Succede quando la stessa istruzione ha comportamenti diversi a seconda che sia eseguita in modalita' Privileged o in modalita' Unprivileged. Tali architetture non sono virtualizzabili in senso classico.

Tecnica classica di virtualizzazione Condizioni per la virtualizzabilita' in senso classico 2/2 Formalmente si ha che un sistema e' virtualizzabile in senso classico quando (teorema di Popek- Goldberg): I S I P I S = Insieme delle sensitive instructions. I P = Insieme delle privileged instructions.

x86 e virtualizzazione Solo un esempio: the POPF problem. (sensitive non privileged) Non virtualizzabile in senso classico

x86 e virtualizzazione semplificando... Architettura incredibilmente complicata. Livelli di privilegio CPL0 (P) CPL1 CPL2 CPL3 (U) Super User Mode User Mode Livello di privilegio per l'accesso all'i/o variabile (per task) Inoltre ci sono altre modalita' di funzionamento che non hanno alcun tipo di livelli di privilegio.

Software Virtualization (BT) mai saltare l'ultimo paragrafo. La virtualizzazione dell'x86 e' ancora possibile, ma richiede una traduzione binaria dinamica (Dynamic BT) del codice eseguito. Dinamica: il codice puo' essere automodificante, quindi la traduzione dev'essere Just In Time. Binaria: l'input del traduttore e' codice binario x86, non codice sorgente L'output del traduttore e' ancora codice x86.

Software Virtualization (BT) VMM (Privileged) I/O + System Mem TU$ BT Virtual Machine Memory

Software Virtualization (BT) Come fatturare $180mln a trimestre. Solo le istruzioni privileged e sensitive richiedono il BT, quindi la maggior parte delle traduzioni sono di tipo 1:1 con l'input; Cache delle parti gia' tradotte (invalidate quando il codice viene modificato);

Supporto Hardware ingegneri elettronici... Ritorno della richiesta per virtualizzazione. Ottima opportunita' per complicare ulteriormente l'x86 (vende meglio). Intel: VT (Virtualization Technology) AMD: SVM (Secure Virtual Machine) Soluzioni sostanzialmente uguali.

Supporto Hardware Solo una dimensione di livelli di privilegio e' lame. Host Mode (VMM) CPL0 (P) CPL1 CPL2 CPL3 (U) VM Exit VM Entry Guest Mode CPL0 (P) CPL1 CPL2 CPL3 (U) L'Host Mode corrisponde al normale funzionamento (usato dal VMM). Il Guest Mode e' identico all'host mode, ma puo' essere configurato per generare VM Exits a determinate condizioni. Lo stato di un processore virtuale e' salvato in un'area di memoria (VMCS/Intel o VMCB/AMD)

Virtualizzazione con supporto HW VM Entry/VM Exit I/O + System Mem VMM (Host Mode) Virtual Machine Memory VCPU (Guest Mode)

Virtualizzazione con supporto HW Non c'e' de-privileging; La stragrande maggiorparte del codice e' eseguito in modalita' nativa; Non tutte le istruzioni sensitive in privileged mode generano VM Exits (Ex: POPF cambia geflags); Un VMM del genere dovrebbe avere prestazioni molto superiori ad uno che usa il BT;

L'altra VM Virtual Memory Cos'e' la Virtual Memory; Lo stato della memoria virtuale non e' nella CPU ma in memoria (Page Tables); Il VMM deve proteggere le tabelle; Inoltre le Page Tables che crea la Virtual Machine non corrispondono alle Page Table reali.

L'altra VM shadow structures. VMM CR3 VMM System Memory Shadow Page Tables VCPU Virtual Machine Memory CR3 Page Tables

L'altra VM shadow structures explained. La traduzione tra indirizzo virtuale della macchina virtuale in indirizzo fisico avviene nelle Page Tables del VMM (shadow page tables); Il VMM mantiene le shadow page tables consistenti con le page tables della macchina virtuale; Uno dei motivi principali dell'overhead di virtualizzazione e' appunto dovuto ai continui interventi del VMM per la gestione della memoria virtuale.

BT vs HW Ingegneri elettronici, convertitevi. Un VMM che sfrutta il supporto HW, come gia' visto, risolve la necessita di generare trap per eseguire istruzioni privilegiate (o di interpretarle dinamicamente); Non aiuta, pero', nei trap generati dalla Virtual Memory.

BT vs HW inductance is futile. Costo del Trap (VCPU => VMM) e' molto maggiore nei VMM con supporto HW rispetto ai VMM software; Software e' piu' flessibile. Piu' ottimizzazioni possibili; Un VMM basato su software tende ad essere migliore in applicazioni I/O-bound o che creano molti processi.

E l'x86-64? Le versioni di AMD (AMD64) e Intel (EM64T) differiscono lievemente nella gestione dei segmenti. AMD64 supporta il Limit Checking dei segmenti, non EM64T Il BT usa il Limit Checking per proteggere la memoria del VMM, quindi su processori Intel la virtualizzazione a 64 bit richiede il supporto hardware.

E la paravirtualizzazione? Il sistema operativo viene modificato e reso cosciente della presenza del VMM. Il sistema operativo comunica direttamente con il VMM, semplificandone notevolmente la complessita' e aumentando le prestazioni del sistema in maniera significativa. Idea non nuova. Due implementazioni al momento: Xen (open source, alleanza con Microsoft) e VMware VMI.

Grazie!