Прерывание...

Если у вас есть вопросы по написанию программ на C/C++ или код, которым вы хотите поделиться, это можно сделать здесь

Модератор: Вася Сташевский

Ответить
Аватара пользователя

Автор темы
Sasha Telegraph
Новичок
Сообщения: 1
Зарегистрирован: 28 ноя 2016, 03:20
Репутация: 0
Контактная информация:
Статус: Не в сети

Прерывание...

Сообщение Sasha Telegraph » 28 ноя 2016, 03:23


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

Аватара пользователя

Familiyazov
Постоянный пользователь
Сообщения: 61
Зарегистрирован: 24 дек 2014, 21:45
Репутация: 16
Статус: Не в сети

Прерывание...

Сообщение Familiyazov » 28 ноя 2016, 12:02


Прерывание (англ. interrupt) — сигнал от программного или аппаратного обеспечения, сообщающий процессору о наступлении какого-либо события, требующего немедленного внимания. Прерывание извещает процессор о наступлении высокоприоритетного события, требующего прерывания текущего кода, выполняемого процессором. Процессор отвечает приостановкой своей текущей активности, сохраняя свое состояние, и выполняя функцию, называемую обработчиком прерывания (или программой обработки прерывания), который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.[1]

В зависимости от источника возникновения сигнала прерывания делятся на:

асинхронные, или внешние (аппаратные) — события, которые исходят от внешних аппаратных устройств (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши.Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ) - устройства сообщают, что они требуют внимания со стороны ОС;
синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;
программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания, как правило, используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.

https://ru.wikipedia.org/wiki/%D0%9F%D1 ... 0%B8%D0%B5