Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Организация прерываний в ЭВМ. Во время выполнения текущей программы, внутри ЭВМ и в связанной с ней внеш­ней среде



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


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

Рассматриваемый процесс, называемый прерыванием программ, поясняется на рис.2.14. Принципиально важным является то, что моменты возникновения событий, тре­бующих прерывания программ, заранее неизвестны и поэтому не могут быть учтены при программировании.


Прерываемая программа Запросы прерывания

Прерывающие программы

Рис. 2.14. Прерывание программы


Каждое событие, требующее прерывания, сопровождается сигналом, называемым запросами прерывания.

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

Основными функциями системы прерывания являются:

• запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе

• восстановление состояния прерванной программы и возврат к ней.

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


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

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

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

Если наиболее приоритетный из выставленных запросов прерывания не превосходит по уровню приоритета выполняемую процессором программу, то запрос прерывания иг­норируется или его обслуживание откладывается до завершения выполнения текущей программы.

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

В ОС MS DOS и MS Windows таблица векторов прерываний занимает 1024 байта и располагается по адресу 0000h:0000h. Каждый 4-байтный элемент таблицы соответствует типу прерывания (от 0 до OFFH) и содержит сегмент и относительный адрес обработчика прерывания данного уровня. Прерывания от 0 до 1FH (самые нижние уровни) использу­ются как прерывания внутренней аппаратуры; MS-DOS использует прерывания от 20Н до 3FH, все остальные прерывания могут использоваться внешней аппаратурой, системными драйверами и прикладными программами.

Если контроллер прерываний или другое устройство посылает в ЦП прерывание че­рез вывод INTR, оно должно также поместить тип прерывания в виде 8-разрядного числа (от 0 до OFFH) на системную магистраль для передачи в ЦП. Процессор, умножив это число на 4, определяет адрес используемого вектора прерывания и перейдет на обслужи­вание прерывания.

Обслуживание состоит в том, что ЦП, обнаружив сигнал прерывания, помещает в машинный стек слово состояния программы (определяющее различные флаги ЦП), ре­гистр программного сегмента (CS) и указатель команд (IP) и блокирует систему прерыва­ний. Затем ЦП с помощью 8-разрядного числа, установленного на системной магистрали прерывающим устройством, извлекает из таблицы векторов адрес обработчика и возоб­новляет выполнение с этого адреса. По завершении выполнения подпрограммы обработ­чика прерывания, ЦП восстанавливает из стека содержимое регистров CS и IP, вследствие чего возобновляется выполнение прерванной программы.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.