vale1411
Genius
1 min. di lettura
Vota

Concetti Chiave

  • La virtualizzazione dell'hardware consente di ospitare diversi sistemi operativi su un'unica macchina, sia tramite un sistema ospitante che direttamente su hardware ("Bare-metal").
  • I sistemi operativi virtualizzati percepiscono l'hardware in modo uniforme, permettendo la coesistenza e la suddivisione delle risorse tra più sistemi.
  • La virtualizzazione della CPU può essere implementata tramite software o assistita da hardware, migliorando la gestione delle risorse.
  • Le macchine virtuali rendono il software portabile attraverso un codice intermedio, che non dipende dall'hardware specifico.
  • Le macchine virtuali traducono il codice intermedio in istruzioni eseguibili tramite tecniche come la compilazione just-in-time e il caching per ottimizzare le prestazioni.

Computer - virtualizzazione oggi

Dagli anni Novanta iniziano a diffondersi tecnologie di virtualizzazione dell’hardware per rendere Sistema Operativo e software applicativi portabili.
Per esempio:
-- virtualizzazione dell’hardware per ospitare diversi Sistemi Operativi:
- Sistema Operativo ospite (guest) può essere installato sopra a quello ospitante (host) o da “Bare-metal” (non c’è host)
- i Sistema Operativo vedono l’hardware allo stesso modo
- la virtualizzazione della CPU può essere software-based o hardware-assisted
- si possono lanciare Sistema Operativo contemporaneamente e suddividere le risorse
-- macchine virtuali per rendere il software portabile:
- codice sorgente non compilato direttamente in codice binario (istruzioni ISA) ma in codice intermedio indipendente dall’hardware (es. Java bytecode, MSIL = Microsoft Intermediate Language)
- codice intermedio compreso da una macchina virtuale (JVM = Java Virtual Machine, VES= Virtual Execution System) installato tra hardware e Sistema Operativo
- durante l’esecuzione la macchina virtuale traduce il codice intermedio in codice ISA
- la macchina virtuale opera logicamente come interprete (traduzione run-time) con tecniche di compilazione just-in-time (subito prima dell’esecuzione) e caching (non si traduce codice già tradotto) per massimizzare l’efficienza

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community