Głównym celem przerwań jest to, że mogą (i zdarzają się) przez cały czas i są zaprojektowane tak, aby nie miały żadnego wpływu na każdy kod, który jest uruchamiany, gdy się pojawią. Wszystkie rejestry są zapisywane iw zależności od architektury procesora można zamienić zupełnie inny zestaw rejestrów, przerwanie robi swoje, a następnie oryginalne rejestry są przywracane i kod nadal działa normalnie.
Problemy mogą wystąpić, gdy procedura obsługi przerwań sama próbuje uzyskać dostęp do pamięci, do której uzyskuje dostęp działający, przerwany kod.
Jeszcze bardziej subtelne błędy mogą wystąpić, gdy krytyczny czasowo proces I / O zostanie przerwany. Te problemy są powszechne w przypadku starszych, prostszych, mniej bezpiecznych architektur, w których może występować niewielka separacja między kodem trybu „użytkownik” i „nadzorca / jądro”.
Ten rodzaj problemu może być trudny do zidentyfikowania i często trudny do odtworzenia, ale raz zidentyfikowany jest często dość trywialny do naprawienia za pomocą programowania obronnego, muteksów / semaforów lub po prostu wyłączając przerwań w krytycznych sekcjach kodu.
Ogólna klasa problemów została dokładnie zbadana i nowoczesne wielordzeniowe procesory, a nawet wielozadaniowe systemy operacyjne nie byłyby możliwe, gdyby nie wypróbowano i przetestowano wielu rozwiązań.