Прерывания: как устройства зовут процессор (Приложение A)

Опубликовано: 11.04.2026

 

← П. О приложениях 📋 Оглавление B. Компилятор →
КАК УСТРОЕНО ВСЁ — приложение A

Прерывания: как устройства зовут процессор

Механизм, без которого не работает ни клавиатура, ни мышь, ни сеть - и который объясняет, почему процессор не тратит время впустую

В статьях про процессор и операционную систему мы несколько раз упоминали прерывания - вскользь, как нечто само собой разумеющееся. Пришло время разобраться, что это такое на самом деле. Прерывания - один из тех механизмов, которые настолько фундаментальны, что без них современный компьютер в принципе не мог бы работать так, как работает.

🤔 Проблема: как устройство сообщает процессору о событии?

Представьте, что вы ждёте посылку. Есть два способа это делать. Первый: каждые пять минут выходить к двери и проверять, не принесли ли что-нибудь. Второй: заниматься своими делами и открыть дверь, только когда позвонит курьер.

Первый способ называется опрос (polling). Процессор раз за разом спрашивает каждое устройство: «У тебя что-нибудь есть? А у тебя? А у тебя?» Это работает, но расточительно: большую часть времени ответ «нет», а процессор занят бессмысленным обходом. Если устройств много - клавиатура, мышь, сетевая карта, диск, USB, звуковая карта - опрос каждого из них становится заметной нагрузкой.

Второй способ - прерывание. Устройство само сигнализирует процессору, когда ему есть что сообщить. Процессор в это время занимается другой работой и реагирует только тогда, когда его действительно позвали.

💡 Почему это принципиально важно: Без прерываний многозадачность была бы невозможна в том виде, в котором мы её знаем. Планировщик задач сам запускается по прерыванию от таймера - именно оно отсчитывает кванты времени и заставляет ОС переключаться между процессами. Уберите прерывания - и программы будут работать только по одной, без какого-либо управления извне.

⚡ Как работает прерывание - шаг за шагом

Вы нажали клавишу на клавиатуре. Разберём, что за этим следует.

Контроллер клавиатуры фиксирует нажатие и формирует электрический сигнал - запрос на прерывание (IRQ, Interrupt Request). Этот сигнал поступает на специальный чип - контроллер прерываний, который управляет очерёдностью сигналов от разных устройств и передаёт их процессору.

Процессор заканчивает текущую инструкцию - прервать его посередине нельзя - и переходит к обработке прерывания. Для этого он делает несколько вещей: сохраняет своё текущее состояние (содержимое регистров, адрес следующей инструкции) в стек, чтобы потом вернуться ровно туда, где остановился. Затем смотрит в специальную таблицу - таблицу векторов прерываний - и находит адрес обработчика для этого типа прерывания.

Обработчик прерывания — это небольшая функция в ядре ОС, написанная для этого типа устройств. Для клавиатуры она читает из контроллера, какая именно клавиша была нажата, кладёт этот код в буфер, и сообщает той программе, которая сейчас ждёт ввода. Всё это занимает микросекунды.

После этого процессор восстанавливает сохранённое состояние и продолжает работу ровно с того места, где был прерван. Программа, которую он выполнял, ничего не заметила.

📌 Таблица векторов прерываний: Это массив адресов, хранящийся в памяти. Каждому номеру прерывания соответствует адрес обработчика. Номер 1 - прерывание от таймера, номер 12 - от мыши, номер 14 - от диска, и так далее. ОС заполняет эту таблицу при загрузке, прописывая адреса своих обработчиков. Именно поэтому, когда ОС загружается, она «берёт под контроль» железо - в буквальном смысле переписывает таблицу под себя.

🗂️ Виды прерываний

Не все прерывания приходят от внешних устройств. Их принято делить на три большие группы.

Аппаратные прерывания - те самые, от периферии. Клавиатура нажата, пакет пришёл по сети, диск закончил запись, USB-устройство подключено. Любое физическое событие, о котором нужно сообщить процессору немедленно.

Программные прерывания, или системные вызовы — их генерирует сама программа. Когда браузер хочет открыть файл или отправить данные по сети, он не обращается к железу напрямую: он выполняет специальную инструкцию, которая передаёт управление ядру ОС. С точки зрения железа это тоже прерывание - только вызванное намеренно, а не внешним сигналом.

Исключения - прерывания, которые процессор генерирует сам, когда что-то пошло не так. Деление на ноль, обращение к несуществующему адресу памяти, выполнение запрещённой инструкции - всё это исключения. ОС перехватывает их и решает, что делать: чаще всего завершает программу с сообщением об ошибке.

Вид прерывания Кто генерирует Примеры
Аппаратное Внешнее устройство Нажатие клавиши, приход пакета, готовность диска
Программное (системный вызов) Сама программа Открыть файл, выделить память, отправить данные в сеть
Исключение Сам процессор Деление на ноль, выход за границы памяти, недопустимая инструкция

⏱️ Прерывание от таймера - сердце многозадачности

Из всех аппаратных прерываний самое важное - прерывание от системного таймера. Специальная микросхема на материнской плате генерирует его с точным интервалом: обычно от одного до десяти миллисекунд. Каждый раз, когда это прерывание приходит, управление передаётся планировщику задач.

Именно так реализован квант времени, о котором мы говорили в статье про многозадачность. Программа не может «захватить» процессор навсегда - таймер в любом случае прервёт её через несколько миллисекунд и передаст управление ОС. Планировщик решает, какому процессу выделить процессорное время, и работа продолжается. Программа при этом даже не знает, что её прерывали.

💡 Что значит «отключить прерывания»: Процессор умеет временно запрещать обработку прерываний - специальной инструкцией. Это делается в критических местах ядра, когда нельзя допустить переключения посередине операции. Например, когда ОС меняет таблицу страниц виртуальной памяти: если прерывание придёт в этот момент и планировщик попытается переключить контекст - получится несогласованное состояние. Поэтому ядро на доли микросекунды «глушит» прерывания, делает своё дело и снова их включает. Злоупотреблять этим нельзя: пока прерывания отключены, мышь не реагирует, сеть не принимает пакеты, таймер не тикает.

🔗 Прерывания и всё остальное

Теперь, зная о прерываниях, многое встаёт на свои места. Когда вы двигаете мышью - прерывание. Когда приходит сообщение в мессенджере - прерывание от сетевой карты разбудило процесс. Когда компьютер «засыпает» при бездействии и мгновенно «просыпается» от нажатия клавиши - это прерывание подняло его из состояния пониженного потребления. Когда программа зависает и перестаёт реагировать, но остальные продолжают работать - прерывание от таймера всё равно приходит, планировщик переключается, другие процессы получают своё время.

Прерывание — это не экзотика и не деталь реализации. Это базовый язык, на котором железо разговаривает с операционной системой. Каждое нажатие, каждый байт из сети, каждый тик часов - всё начинается с сигнала, который говорит процессору: «Отвлекись на секунду. Есть кое-что важное».


📍 Привезите технику в сервис ANY.BY - диагностика бесплатно, работаем без выходных.
🛒 Ноутбуки, компьютеры и комплектующие - магазин magaz.by.

Звоните, пишите, ответим на Ваши вопросы:

📞 +375 (33) 323-70-00 (МТС) | +375 (29) 323-70-00 (A1)
✉️ Telegram | Viber

🚗 Не можете приехать - вызовите мастера на дом.

➡️ Смотреть полный прайс-лист →

← П. О приложениях 📋 Оглавление B. Компилятор →
Расписание работы · ул. Куйбышева, 26
Пн–Пт 10:00–19:00
Суббота 11:00–17:00
Воскресенье 12:00–16:00

★★★★★ 4.8 · 163 отзыва в Google
★★★★★ 4.9 · 41 отзыв в Яндекс
Н
Наталья Рачковская
2022
★★★★★

Великолепная работа мастера! Чётко определили проблемы, дали полную консультацию. Всё сделано оперативно, результатами довольны полностью.

И
Игорь С.
май 2023
★★★★★

Рекомендую этот сервис. Мастера — профессионалы своего дела.

А
Анна Г.
март 2021
★★★★★

Все понравилось. Отличный сервис, внимательный персонал. Компьютер работает как новый.

Д
Денис
июнь 2024
★★★★★

Рекомендую данный сервис. Делают на совесть.

А
Алексей Г.
2019
★★★★★

Отличный сервис. Мастер знает своё дело. Рекомендую!

В
Володя Логинов
2022
★★★★★

Хорошая мастерская. Восстановили корпус и операционную систему ноутбука. Теперь работает как часы. Не пожалел, что обратился сюда.

А
Андрей
январь 2025
★★★★★

Отличный сервис, рекомендую. Сделали быстро и качественно.

В
Владимир
май 2024
★★★★★

Отличный сервис. Всё сделали быстро и качественно. Буду обращаться ещё.

А
Артем К.
март 2023
★★★★★

Отличный сервис! Починили видеокарту, которую в других местах отказывались брать.

Ю
Юлия М.
февраль 2023
★★★★★

Очень довольна результатом. Всё работает исправно, спасибо большое!


📖 Как устроен компьютер

Цикл статей ANY.BY — от транзистора до интернета.
Простым языком, без лишней теории.

🎓 Читать учебник →


Статус вашего ремонта

Узнайте на каком этапе находится ваш заказ.

📋 Проверить статус заказа