Вход
Быстрая регистрация
Если вы у нас впервые: О проекте FAQ
0

Что за процесс такой "прерывание­" в компьютерах?

ТатиТ [54K] более года назад
2

Дело в ом, что все процессы в компьютере по мере из запуска ствятся в очередь на обслуживание, причем очередь эта в простейшем случае кольцевая. В более продвинутых очередях используется понятие приоритета процесса. Есть специальный процесс-диспетер (обладает наивысшим - нулевым - приоритетом), который постоянно просматривает эту очередь на предмет появления у какого-либо процесса в ней запроса на обработку (такой процесс взводит специальный "флажок"). Этот флажок и называется запросом на прерывание, он генерируется аппаратным способом (например, это может нажатие или отпускание какой-нить клавиши на клавиатуре или на мыше или изменение позиции курсора, да даже просто прерывание от таймера часов). Диспетчер переключает процессор и общую шину на обслуживание такого прерывания с учетом его приоритета, выделяя соответствующему процессу некий малый квант времени порядка 5 микросекунд. Если ни один из прикладных процессов не выдает прерывания, то обрабатывается прерывание от таймера часов - оно то уж всегда присутствует, даже если компьютер выключен (подпитывается от батарейки на системной плате).

автор вопроса выбрал этот ответ лучшим
2

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

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

Одной из важных функций прерываний является обеспечение регулярного вызова планировщика в многозадачной операционной системе.

Знаете ответ?
Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее..
регистрация
OpenID