Прерывания: как устройства зовут процессор (Приложение 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 - от транзистора до интернета.
Простым языком, без лишней теории.