El punto central de las interrupciones es que pueden ocurrir (y suceden) todo el tiempo, y están diseñadas para tener un impacto cero en cualquier código que se ejecute cuando ocurren. Todos los registros se guardan y, dependiendo de la arquitectura de la CPU, se puede intercambiar un conjunto de registros completamente diferente, la interrupción hace su trabajo, y luego los registros originales se restauran y el código continúa funcionando normalmente.
Pueden ocurrir problemas cuando la rutina del servicio de interrupción intenta acceder a la memoria a la que se accede mediante el código interrumpido en ejecución.
Incluso pueden ocurrir errores más sutiles cuando se interrumpe un proceso de E / S crítico para el tiempo. Estos problemas son comunes con las arquitecturas más antiguas, más sencillas y menos seguras, donde puede haber poca separación entre el código de modo "usuario" y "supervisor / kernel".
Este tipo de problema puede ser difícil de identificar y, a menudo, difícil de reproducir, pero una vez identificados, a menudo son bastante triviales de solucionar mediante programación defensiva, mutex / semáforos o simplemente deshabilitando las interrupciones en secciones críticas de código.
La clase general de problemas se ha estudiado ampliamente, y las CPU modernas de múltiples núcleos e incluso los sistemas operativos multitarea no serían posibles si no se hubieran probado y probado múltiples soluciones.