Содержание
Компьютер замечает нажатие клавиши потому, что клавиатура сама сообщает о нём. Она отправляет номер нажатой клавиши, а процессор получает сигнал — прерывание. Он на мгновение откладывает текущую работу, принимает этот номер и возвращается к прерванной программе. Так же, по сигналу, компьютер узнаёт о движении мыши, касании экрана и сообщении, пришедшем из сети.
Устройства ввода и вывода
Устройства ввода передают данные в компьютер: это клавиатура, мышь, микрофон, камера. Устройства вывода передают данные из компьютера наружу: экран, наушники, принтер. Некоторые делают и то и другое. У геймпада кнопки — ввод, а вибрация — вывод. Сенсорный экран телефона показывает картинку и чувствует палец.
Для процессора все они похожи: от одних приходят числа, другим числа нужно отправить. Посмотрим, какие числа и когда.
Путь одной буквы
Вы пишете сообщение в мессенджере и нажимаете клавишу. На экране появляется буква «а». Между этими двумя событиями шесть шагов.
- Клавиша замыкает контакт. Под клавишами проводники уложены сеткой: строки и столбцы. Внутри клавиатуры есть своя микросхема — контроллер. Он много раз в секунду по очереди проверяет строки и столбцы и находит замкнутый контакт.
- Контроллер отправляет код клавиши. Это просто номер клавиши, его называют скан-кодом. У клавиатур, подключённых по USB, клавиша с буквами F и А имеет номер 9. Когда клавишу отпускают, клавиатура сообщает и об этом — иначе не работали бы Shift и управление в играх.
- Процессор получает прерывание. Он приостанавливает текущую программу и запускает короткую программу операционной системы, которая принимает код клавиши.
- Операционная система находит символ. Она смотрит, какая включена раскладка и нажат ли Shift.
- Программа получает символ. Операционная система передаёт его той программе, окно которой сейчас активно. Мессенджер дописывает символ в строку сообщения.
- Буква становится точками. В шрифте находится рисунок буквы, и цвета его точек записываются в память, из которой берёт изображение экран.
Самое важное происходит на четвёртом шаге. Клавиша одна и код у неё один, а символов четыре.
| Раскладка | Shift | Символ | Код символа в Юникоде |
|---|---|---|---|
| английская | не нажат | f | U+0066 |
| английская | нажат | F | U+0046 |
| русская | не нажат | а | U+0430 |
| русская | нажат | А | U+0410 |
Код клавиши — ещё не код символа. Клавиатура ничего не знает о буквах: она сообщает, какую клавишу нажали, а что это значит, решает операционная система. Сами коды символов разобраны в уроке Как компьютер хранит текст.
Опрос и прерывание
Узнать о событии можно двумя способами.
Представьте, что Вы написали контрольную и ждёте оценку в электронном дневнике. Можно каждые пять минут открывать дневник и проверять. Это опрос: Вы сами раз за разом спрашиваете, не случилось ли что-нибудь. Почти все проверки окажутся напрасными, а оценку Вы всё равно увидите с опозданием — до пяти минут.
Можно поступить иначе: включить уведомления и читать книгу. Когда оценку выставят, телефон звякнет. Это прерывание: о событии сообщает тот, у кого оно произошло.
Услышав сигнал, Вы дочитаете предложение, положите закладку, посмотрите оценку и вернётесь к книге. Процессор действует так же.
- Заканчивает команду, которую выполнял.
- Запоминает, на чём остановился: значение счётчика команд, то есть адрес следующей команды, и содержимое остальных регистров.
- Выполняет обработчик прерывания — короткую программу операционной системы. Для клавиатуры она принимает код клавиши.
- Возвращает сохранённые значения и продолжает прерванную программу с того же места.
Прерванная программа ничего не замечает: для неё команды идут подряд, как в уроке Как работает процессор.
| Опрос | Прерывание | |
|---|---|---|
| Кто начинает разговор | компьютер | устройство |
| Лишняя работа | много пустых проверок | нет |
| Задержка | до промежутка между проверками | почти нет |
| Что нужно | только программа | линия для сигнала и обработчик |
Опрос не всегда плох. Он прост, и он хорош, когда новости есть почти при каждой проверке. Опросом пользуется и контроллер внутри клавиатуры, когда проверяет сетку клавиш. На коробках игровых мышей указывают «частоту опроса»: 1000 Гц означает, что тысячу раз в секунду компьютер узнаёт у мыши, куда она сдвинулась. Обычную мышь опрашивают 125 раз в секунду, то есть каждые 1000 : 125 = 8 мс.
Экран: память кадра и частота обновления
С выводом проще: компьютеру достаточно записать числа в нужное место. Память кадра — участок памяти, в котором для каждого пикселя экрана записан его цвет. Как цвет превращается в числа, рассказано в уроке Картинки и звук. Чтобы изменить изображение, программа меняет числа в памяти кадра.
Посчитаем её размер для экрана 1920 × 1080, если на пиксель уходит три байта.
1920 · 1080 = 2 073 600 пикселей
2 073 600 · 3 = 6 220 800 байтов
Видеокарта раз за разом отправляет содержимое памяти кадра на экран. Частота обновления показывает, сколько раз в секунду это происходит. Её измеряют в герцах: 60 Гц — это 60 раз в секунду.
| Частота обновления | Сколько длится один кадр |
|---|---|
| 60 Гц | 1000 : 60 ≈ 16,7 мс |
| 120 Гц | 1000 : 120 ≈ 8,3 мс |
| 144 Гц | 1000 : 144 ≈ 6,9 мс |
Поэтому буква появляется не мгновенно: ей приходится ждать ближайшего обновления, при 60 Гц — до 16,7 мс. При наборе текста это незаметно. В быстрой игре разница видна, и экраны на 120 Гц и выше показывают движение плавнее.
За секунду при 60 Гц на экран уходит 6 220 800 · 60 = 373 248 000 байтов. Это огромный поток данных, поэтому у экрана отдельный скоростной кабель.
Частые вопросы
Клавиатура отправляет компьютеру буквы?
Нет, только номера клавиш. Поэтому одна и та же клавиатура печатает на любом языке: при смене раскладки меняется таблица в операционной системе, а клавиатура остаётся прежней.
Частота обновления и FPS — одно и то же?
Нет. FPS — это число кадров, которые игра успевает подготовить за секунду. Частота обновления — число показов памяти кадра на экране за секунду. Если игра готовит 200 кадров, а экран работает на 60 Гц, Вы увидите только 60.
Что будет, если нажимать клавиши, пока программа занята?
Нажатия не пропадут. Обработчик прерывания складывает коды клавиш в очередь, и программа заберёт их, когда освободится. Поэтому после короткого «зависания» набранный текст появляется сразу целиком.
Коротко
- Клавиатура передаёт код клавиши — её номер. Символ по раскладке и клавише Shift определяет операционная система.
- Опрос: компьютер сам регулярно спрашивает устройство. Прерывание: устройство подаёт сигнал, когда что-то произошло.
- Получив прерывание, процессор запоминает место в программе, выполняет обработчик и возвращается обратно.
- Изображение хранится в памяти кадра: там записан цвет каждого пикселя.
- Частота обновления — сколько раз в секунду экран получает кадр. При 60 Гц один кадр длится около 16,7 мс.
Обработчики прерываний, таблицы раскладок, очередь нажатий — всё это части одной большой программы. О ней — урок Операционная система.
Использованная литература
- Скан-код — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Скан-код (дата обращения: 09.10.2026).
- Прерывание — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Прерывание (дата обращения: 09.10.2026).
- Частота обновления — Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Частота_обновления (дата обращения: 09.10.2026).
- Mouse DPI and USB Polling Rate — Coding Horror [Электронный ресурс]. — URL: https://blog.codinghorror.com/mouse-dpi-and-usb-polling-rate/ (дата обращения: 09.10.2026).