Macchine virtuali



Una macchina virtuale (virtual machine) per un linguaggio L è un sistema software basato sulla presenza di un interprete per L che fonisce l’impressione, a chi la usa, di avere a disposizione la macchina concreta, cioè una macchina il cui linguaggio è proprio L.

In teoria, per un software dovrebbe essere indifferente usare una macchina virtuale oppure una concreta. In realtà utilizzando un macchina virtuale l’esecuzione del programma risulta più lenta.

L’idea delle macchine virtuali ha comunque avuto successo soprattutto negli ultimi anni; la velocità ormai non sembra più essere il rechiusito più importante, almeno per la maggior parte delle applicazioni. Questo grazie all’enorme evoluzione hardware avvenuta negli ultimi anni e in continuo aggiornamento, ma anche dall’importanza assunta da fattori come la sicurezza e la portabilità.

In ogni caso si cerca di superare il problema della lentezza con particolari tecniche come per esempio: Just in Time Compiling: il codice di un sottoprogramma da interpretare viene tradotto al volo nel linguaggio della macchina concreta senza che l’utente se ne accorga al momento che richiede l’esecuzione.

Hot Spot

La stessa macchina virtuale decide qualli sono i pezzi caldi di codice che la pena di eseguire direttamente in codice nativo.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest