No, non è l’ennesimo quiz inviatoci da qualche amico di Facebook.
VMware ha rilasciato nel lontano 2006 un interessantissimo paper dal pomposo titolo:
“Improving Guest Operating System Accounting for Descheduled Virtual Machines in ESX Server 3.x Systems”
Benchè vecchio di 3 anni, è un ottimo punto di partenza per comprendere il funzionamento degli orologi di sistema delle macchine virtuali. Dal momento che anche i timer interrupts sono virtualizzati capita spesso di trovarci con guest il cui orologio manca clamorosamente non solo i minuti in un giorno, ma anche nell’arco di tempo di un’ora è possibile trovarne 10-20 di scostamento.
E il descheduling è il motivo per cui ciò avviene: un sistema operativo registra i timer interupts e su questi basa l’avanzamento del suo orologio. In un ambiente virtuale con strumenti di descheduling, il sistema host (nel nostro caso VMware ESX) può mettere in coda le richieste non prioritarie di molte VM se una di esse ha invece necessità di risorse; questa attività è appunto il descheduling.
Prendiamo una VM che sia stata deschedulizzata per 10 millisecondi, ma il tempo reale trascorso sia stato di 50 millisecondi; alla ripresa della sua attività di elaborazione il suo orologio sarà già 40 millisecondi indietro. Il sistema di descheduling tenta in questo caso di fornire i successivi timer interrupts alla macchina arretrata a una frequenza maggiore per tentare di riportarla in pari.