Un simulatore di computer è un programma eseguito su un computer allo scopo di simulare una sorta di sistema, al fine di avere un’idea migliore di come funziona il sistema. Un simulatore di computer può anche essere utilizzato per simulare un altro computer. Esistono due tipi principali: il simulatore di sistema completo e il simulatore di set di istruzioni (ISS). Questo tipo di simulatore di computer viene spesso utilizzato per testare nuovo software su un’ampia gamma di configurazioni hardware, senza dover effettivamente utilizzare i computer fisici.
Al suo livello più fondamentale, un simulatore di computer viene utilizzato per ricreare una situazione di vita reale in cui testare molti stati diversi non sarebbe facile o sicuro. In questo caso, l’utilizzo di un simulatore di computer consente di risparmiare una grande quantità di tempo e risorse e può effettivamente consentire test approfonditi che sarebbero fisicamente impossibili nel mondo reale. Le simulazioni al computer sono state utilizzate in ingegneria e scienza per un po’ di tempo e negli ultimi anni, poiché l’hardware è diventato più robusto e il software è diventato più sofisticato, queste simulazioni sono in grado di ottenere sempre di più.
Un esempio di utilizzo di un simulatore di computer potrebbe essere una società di ingegneria che lavora alla progettazione di un’ala migliore per gli aerei. Invece di spendere risorse per costruire prototipi di ogni nuovo progetto e testarli in gallerie del vento o su aerei reali, è possibile eseguire una simulazione. Se la fluidodinamica del vento viene accuratamente modellata, qualsiasi numero di variabili può essere modificato per testare un’ala virtuale in un milione di scenari diversi, alcuni dei quali potrebbero essere impossibili da ricreare nel mondo reale. Inoltre, se un progetto risulta non essere ideale, può essere facilmente modificato e riprovato, senza la necessità di costruire un nuovo oggetto fisico. In questo modo, è possibile provare centinaia o migliaia di progetti in un periodo di tempo relativamente breve, consentendo un grado di messa a punto molto maggiore di quanto sarebbe altrimenti possibile.
Con la proliferazione dell’hardware, i produttori di software trovano anche la necessità di simulare ambienti diversi per i loro programmi. Dal momento che sarebbe impossibile eseguire un software su ogni computer del mondo, tanto meno eseguirlo su ogni sistema modificato con più o meno memoria video, schede audio di terze parti e le dozzine di altri componenti che possono essere personalizzati, viene invece utilizzato un simulatore di computer. In questo modo, il software può essere eseguito su decine di migliaia di ipotetiche configurazioni hardware e i bug possono essere rilevati e risolti molto prima che il prodotto venga spedito ai clienti.
I simulatori di set di istruzioni sono comunemente usati per questa attività. Sono in grado di modificare le variabili che rappresentano limitazioni hardware diverse di macchine diverse. Queste variabili possono essere modificate, il programma può essere eseguito e quindi le variabili possono essere nuovamente modificate, consentendo a un programmatore di testare molti sistemi in un breve periodo di tempo.
Un altro tipo di simulatore è il simulatore di sistema completo. Sebbene simile a una ISS, un simulatore di sistema completo consente un ambiente molto più completo, consentendo la simulazione di interi sistemi operativi e driver software. Ciò consente un grado di accuratezza ancora maggiore nella simulazione, che offre una migliore opportunità per rilevare e riparare i bug.