Прерывания: как устройства зовут процессор (Приложение A)
Прерывания: как устройства зовут процессор (Приложение A)
Опубликовано: 11.04.2026
Прерывания: как устройства зовут процессор
Механизм, без которого не работает ни клавиатура, ни мышь, ни сеть - и который объясняет, почему процессор не тратит время впустую
В статьях про процессор и операционную систему мы несколько раз упоминали прерывания - вскользь, как нечто само собой разумеющееся. Пришло время разобраться, что это такое на самом деле. Прерывания - один из тех механизмов, которые настолько фундаментальны, что без них современный компьютер в принципе не мог бы работать так, как работает.
🤔 Проблема: как устройство сообщает процессору о событии?
Представьте, что вы ждёте посылку. Есть два способа это делать. Первый: каждые пять минут выходить к двери и проверять, не принесли ли что-нибудь. Второй: заниматься своими делами и открыть дверь, только когда позвонит курьер.
Первый способ называется опрос (polling). Процессор раз за разом спрашивает каждое устройство: «У тебя что-нибудь есть? А у тебя? А у тебя?» Это работает, но расточительно: большую часть времени ответ «нет», а процессор занят бессмысленным обходом. Если устройств много - клавиатура, мышь, сетевая карта, диск, USB, звуковая карта - опрос каждого из них становится заметной нагрузкой.
Второй способ - прерывание. Устройство само сигнализирует процессору, когда ему есть что сообщить. Процессор в это время занимается другой работой и реагирует только тогда, когда его действительно позвали.
⚡ Как работает прерывание - шаг за шагом
Вы нажали клавишу на клавиатуре. Разберём, что за этим следует.
Контроллер клавиатуры фиксирует нажатие и формирует электрический сигнал - запрос на прерывание (IRQ, Interrupt Request). Этот сигнал поступает на специальный чип - контроллер прерываний, который управляет очерёдностью сигналов от разных устройств и передаёт их процессору.
Процессор заканчивает текущую инструкцию - прервать его посередине нельзя - и переходит к обработке прерывания. Для этого он делает несколько вещей: сохраняет своё текущее состояние (содержимое регистров, адрес следующей инструкции) в стек, чтобы потом вернуться ровно туда, где остановился. Затем смотрит в специальную таблицу - таблицу векторов прерываний - и находит адрес обработчика для этого типа прерывания.
Обработчик прерывания — это небольшая функция в ядре ОС, написанная для этого типа устройств. Для клавиатуры она читает из контроллера, какая именно клавиша была нажата, кладёт этот код в буфер, и сообщает той программе, которая сейчас ждёт ввода. Всё это занимает микросекунды.
После этого процессор восстанавливает сохранённое состояние и продолжает работу ровно с того места, где был прерван. Программа, которую он выполнял, ничего не заметила.
🗂️ Виды прерываний
Не все прерывания приходят от внешних устройств. Их принято делить на три большие группы.
Аппаратные прерывания - те самые, от периферии. Клавиатура нажата, пакет пришёл по сети, диск закончил запись, USB-устройство подключено. Любое физическое событие, о котором нужно сообщить процессору немедленно.
Программные прерывания, или системные вызовы — их генерирует сама программа. Когда браузер хочет открыть файл или отправить данные по сети, он не обращается к железу напрямую: он выполняет специальную инструкцию, которая передаёт управление ядру ОС. С точки зрения железа это тоже прерывание - только вызванное намеренно, а не внешним сигналом.
Исключения - прерывания, которые процессор генерирует сам, когда что-то пошло не так. Деление на ноль, обращение к несуществующему адресу памяти, выполнение запрещённой инструкции - всё это исключения. ОС перехватывает их и решает, что делать: чаще всего завершает программу с сообщением об ошибке.
| Вид прерывания | Кто генерирует | Примеры |
|---|---|---|
| Аппаратное | Внешнее устройство | Нажатие клавиши, приход пакета, готовность диска |
| Программное (системный вызов) | Сама программа | Открыть файл, выделить память, отправить данные в сеть |
| Исключение | Сам процессор | Деление на ноль, выход за границы памяти, недопустимая инструкция |
⏱️ Прерывание от таймера - сердце многозадачности
Из всех аппаратных прерываний самое важное - прерывание от системного таймера. Специальная микросхема на материнской плате генерирует его с точным интервалом: обычно от одного до десяти миллисекунд. Каждый раз, когда это прерывание приходит, управление передаётся планировщику задач.
Именно так реализован квант времени, о котором мы говорили в статье про многозадачность. Программа не может «захватить» процессор навсегда - таймер в любом случае прервёт её через несколько миллисекунд и передаст управление ОС. Планировщик решает, какому процессу выделить процессорное время, и работа продолжается. Программа при этом даже не знает, что её прерывали.
🔗 Прерывания и всё остальное
Теперь, зная о прерываниях, многое встаёт на свои места. Когда вы двигаете мышью - прерывание. Когда приходит сообщение в мессенджере - прерывание от сетевой карты разбудило процесс. Когда компьютер «засыпает» при бездействии и мгновенно «просыпается» от нажатия клавиши - это прерывание подняло его из состояния пониженного потребления. Когда программа зависает и перестаёт реагировать, но остальные продолжают работать - прерывание от таймера всё равно приходит, планировщик переключается, другие процессы получают своё время.
Прерывание — это не экзотика и не деталь реализации. Это базовый язык, на котором железо разговаривает с операционной системой. Каждое нажатие, каждый байт из сети, каждый тик часов - всё начинается с сигнала, который говорит процессору: «Отвлекись на секунду. Есть кое-что важное».
© 2008–2026 ANY.BY - ремонт компьютеров и ноутбуков в Барановичах. Использование материалов сайта возможно с письменного разрешения.
📍 Привезите технику в сервис ANY.BY - диагностика бесплатно, работаем без выходных.
🛒 Ноутбуки, компьютеры и комплектующие - магазин magaz.by.
📞 +375 (33) 323-70-00 (МТС) | +375 (29) 323-70-00 (A1)
✉️ Telegram | Viber
📞 Мы на связи для Вас:
| Пн–Пт | 10:00–19:00 |
| Суббота | 11:00–17:00 |
| Воскресенье | 12:00–16:00 |
Великолепная работа мастера! Чётко определили проблемы, дали полную консультацию. Всё сделано оперативно, результатами довольны полностью.
Рекомендую этот сервис. Мастера — профессионалы своего дела.
Все понравилось. Отличный сервис, внимательный персонал. Компьютер работает как новый.
Рекомендую данный сервис. Делают на совесть.
Отличный сервис. Мастер знает своё дело. Рекомендую!
Хорошая мастерская. Восстановили корпус и операционную систему ноутбука. Теперь работает как часы. Не пожалел, что обратился сюда.
Отличный сервис, рекомендую. Сделали быстро и качественно.
Отличный сервис. Всё сделали быстро и качественно. Буду обращаться ещё.
Отличный сервис! Починили видеокарту, которую в других местах отказывались брать.
Очень довольна результатом. Всё работает исправно, спасибо большое!
Цикл статей ANY.BY — от транзистора до интернета.
Простым языком, без лишней теории.