русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Прерывания


Дата добавления: 2014-11-28; просмотров: 1310; Нарушение авторских прав


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

Для того чтобы устройство могло сообщить процессору о наступлении события, на шине управления присутствуют специальные линии прерывания – IRQ (Interrupt ReQuest - запрос прерывания). Каждое устройство, которое желает иметь возможность «обращать на себя внимание» процессора, должно быть связано с одной из линий прерывания на шине.

Когда устройство собирается оповестить процессор о наступлении какого-либо события (например, нажатии клавиши, завершении операции чтения/записи на диске, поступлении сигнала от модема, и т.п.), оно выставляет на лини прерывания шины управления сигнал, называемым запросом прерывания

Когда по одной из линий IRQ поступает сигнал (см. рис. …), процессор запоминает текущее значение счетчика команд и текущее состояние регистра флагов, после этого начинает выполняться обработчик прерываний(или процедура обслуживания прерываний) – это специальная процедура, вызываемая по прерыванию для выполнения его обработки. Когда обработчик прерываний выполнит свою работу, происходит возврат из прерывания, т.е. процессор продолжит выполнять прерванную программу (с запомненного адреса и с запомненным регистром состояния).

С каждой из линий IRQ связан адрес программы обработки называемый вектор прерывания (или адрес вектор). О местоположении векторов прерывания будет рассказано в разделе посвященном памяти.



Первое поколение процессоров использовало 8 линий прерывания, а начиная со второго 15 линий. Эти линии обозначаются как IRQ – IRQ15.

Посмотреть с какой из линий IRQ связано то или иное устройство в сиcтеме Windows можно при помощи диспетчера устройств (Рис …).

Рисунок Ресурсы устройства «последовательный порт»

Несколько устройств могут использовать одно IRQ совместно. При совместном использовании несколькими устройствами одной линии возможен конфликт прерываний. Если два устройства находятся на одной линии прерываний, то операционная система может их спутать и переслать исполняемый кусок программы не тому «железке». Например, сетевая плата и звуковая карта находятся на 10 прерывании. Сетевая карта получает пакет из локальной сети с запросом на получение файла и отправляет запрос на прерывание центральному процессору.

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

Чтобы избежать такого конфликта иногда приходится переназначать прерывания для устройств вручную.

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

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

Помимо аппаратных существуют программные прерывания, которые вызываются следующими ситуациями:

- особый случай, возникший при выполнении команды и препятствующий нормальному продолжению программы (деление на ноль, переполнение, нарушение защиты памяти, отсутствие нужной страницы в оперативной памяти и т.п.);

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



<== предыдущая лекция | следующая лекция ==>
Последовательные и параллельные шины | Прямой доступ к памяти (DMA)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.