In alcuni casi, il processore potrebbe essere in grado di continuare a eseguire le istruzioni mentre attende il dispositivo. Questa operazione è nota come esecuzione fuori ordine. L'esecuzione fuori ordine può migliorare le prestazioni consentendo al processore di mantenere occupate tutte le sue unità di esecuzione. Tuttavia, l'esecuzione fuori ordine può anche rendere più difficile il debug dei programmi.
Se il dispositivo non è pronto entro un periodo di tempo ragionevole, il processore potrebbe generare un'interruzione. Ciò farà sì che il processore interrompa l'esecuzione delle istruzioni e passi a un gestore di interrupt. Il gestore dell'interruzione può quindi intraprendere l'azione appropriata per gestire il dispositivo che non è pronto.
Ecco un esempio di cosa potrebbe accadere se il processore richiede qualcosa da un dispositivo e il dispositivo non è pronto:
1. Il processore richiede dati da un disco rigido.
2. L'unità disco rigido non è pronta per fornire i dati.
3. Il processore entra in uno stato di attesa.
4. L'unità disco rigido è pronta.
5. Il processore riprende l'esecuzione delle istruzioni.
In questo esempio, il processore entra in uno stato di attesa per un breve periodo di tempo mentre l'unità disco fisso diventa pronta. Ciò non influisce in alcun modo significativo sulle prestazioni del programma. Tuttavia, se l'unità disco rigido impiegasse molto tempo per essere pronta, il processore sarebbe costretto ad attendere un periodo di tempo prolungato. Ciò potrebbe influire in modo significativo sulle prestazioni del programma.
hardware © www.354353.com