Апаратне переривання відбувається на апаратному рівні. Це можуть бути такі речі, як пастки і зупинки, де сам процесор зберігає свій стан і чекає на введення або виконує щось інше, що не обов'язково є частиною початкової програми (тобто, якщо ви ділите на нуль, ваш процесор повинен зробити щось, що було не має наміру робити під час нормального виконання програми).
Можливо, більш важливо, апаратне переривання дозволяє процесору не витрачати час на так звані петлі опитування. Уявіть, якщо вам доведеться побачити, чи натиснув користувач клавішу. Є два способи зробити це. Перший - це дуже часто перевірка і перевірка натискання клавіші. Хоча це буде працювати, це марнотратно, оскільки переважна більшість часу перевірка повертається негативно. Переривання дозволяє натискати клавішу на себе, щоб змінити стан програми, так що вона отримує "сповіщення" про натискання клавіші. Другий спосіб є значно ефективнішим у багатьох випадках.
Програмне переривання зазвичай означає перемикання контексту, і це здійснюється операційною системою. У деяких випадках це означає не що інше, як перестановка ОС, яка програма виконується на даний момент (якщо на комп'ютері запущено 50 процесів, якщо у вас є 50 ядер / теми, що програма одночасного виконання програми є ілюзією), то щось подібне до наведений вище приклад з клавіатурою, де він чекає на подію (див. докладніше про програмування на основі подій тут (з Вікіпедії))
Важливо відзначити, що, хоча у багатьох випадках програмування на основі переривань є гарною ідеєю, у застосуванні, де існує багато програм на основі переривань, це гарна ідея, якщо це відбувається занадто часто, це може бути менш ефективним, і, можливо, навіть аварійною системою. .