Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Программно-аппаратное управление обработкой прерываний




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

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

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

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

Механизм обработки прерываний независимо от архитектуры вычислительной системы имеет семь шагов:

  1. Устанавливается факт поступления сигнала прерывания и его идентификация супервизором прерываний;
  2. Запоминается состояние прерванного процесса. Это достигается пересылкой содержания регистров процессора в стек. Его вы определяли в ассемблерной программе. Стек создается для любой программы, написанной на любом языке программирования. В программах на языках высокого уровня функцию создания стека берет на себя система, в Ассемблере его создает сам программист. Адрес этого стека записывается в дескрипторе прерываний.
  3. Управление аппаратно передается программе обработки прерываний.
  4. Сохраняется информация о прерванной программе, которая не сохранялась на втором этапе. В некоторых вычислительных системах запоминается большой объем информации о прерванном процессе.
  5. Происходит обработка прерывания. Иногда эту функцию выполняет сама программа обработки прерывания, но часто ОС передает управление какой-либо подпрограмме (например, драйверу определенного устройства).
  6. Восстанавливается информация прерванного процесса.
  7. Происходит возврат в прерванную программу.

Шаги 1 – 3 реализуются аппаратно, а 4 – 7 – программно.

Что же происходит при прерывании? Сохраняется информация о прерванной программе, а это значит, что в стек этой программы отправлена информация, которая находилась на момент прерывания в регистрах процессора: IP – в этом регистре адрес следующей команды, которая должна быть выполнена после прерывания; SS, DS, CS – в этих регистрах адреса начала сегментов; AX, BX, CX, DX – в этих регистрах рабочая информация; SI, DI – информация о смещении (индексные регистры). После обработки прерывания все эти регистры восстанавливаются из стека и состояние процессора точно такое же, как и до прерывания (как будто бы его и не было) и программа продолжается.

 

 


 

 


Схема.Обработка прерывания операционной системой

В 16-и и 32-х разрядных процессорах процесс нахождения адреса программы обработки прерываний построен по разным принципам. В 16-и разрядном процессоре (в реальном режиме работы) по номеру прерывания в векторе прерываний (четырехбайтным словам, находящихся в начале оперативной памяти) определяется адрес программы обработки прерывания. Если номер прерывания умножить на 4, то находим адрес двойного слова, где находится адрес программы обработки прерываний.

В защищенном режиме (32-х разрядный процессор и многозадачный режим работы) при прерывании имеем дело с таблицей дескрипторов прерываний (IDT – interrupt descriptor table). К этой таблице имеет доступ только операционная система и она определяет адрес программы обработчика прерывания.

Дескриптор прерываний может принадлежать к одному из трех типов:

  • коммутатор прерываний (interrupt gate);
  • коммутатор перехвата (trap gate);
  • коммутатор задачи (task gate).

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

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




Поделиться с друзьями:


Дата добавления: 2015-05-29; Просмотров: 532; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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