En algunos casos, es posible que el procesador pueda continuar ejecutando instrucciones mientras espera el dispositivo. Esto se conoce como ejecución fuera de orden. La ejecución fuera de orden puede mejorar el rendimiento al permitir que el procesador mantenga ocupadas todas sus unidades de ejecución. Sin embargo, la ejecución desordenada también puede dificultar la depuración de programas.
Si el dispositivo no está listo en un tiempo razonable, el procesador puede generar una interrupción. Esto hará que el procesador deje de ejecutar instrucciones y salte a un controlador de interrupciones. El manejador de interrupciones puede entonces tomar las medidas apropiadas para lidiar con el dispositivo que no está listo.
A continuación se muestra un ejemplo de lo que podría suceder si el procesador solicita algo de un dispositivo y el dispositivo no está listo:
1. El procesador solicita datos de una unidad de disco duro.
2. La unidad de disco duro no está lista para proporcionar los datos.
3. El procesador entra en estado de espera.
4. La unidad de disco duro estará lista.
5. El procesador continúa ejecutando instrucciones.
En este ejemplo, el procesador entra en un estado de espera durante un breve período de tiempo mientras la unidad de disco duro está lista. Esto no afecta de forma significativa el rendimiento del programa. Sin embargo, si la unidad de disco duro tardara mucho en estar lista, el procesador se vería obligado a esperar un período prolongado. Esto podría afectar significativamente el rendimiento del programa.