Четверг, 13.12.2018
VSSIT
Меню сайта
Мини-чат
К списку вопросов

Выполнение прерываний в ЭВМ

Практически во всех Вычислительных Машинах предусмотрены средства, благодаря которым модули вв/выв и другие любые важные программы могут прерывать выполнение текущей программы для внеочередного выполнения другой программы с последующим возвратом к прерванной. Пример: обращения ЦП к HDD. ЦП вынужден прервать операции вв/выв и обратить свой миллион тактов на другую задачу. В упрощенном виде прерывание можно описать так: Объект, требующий внеочередного обслуживания выставляет на входе ЦП сигнал запроса (ЗП). Пример:
  • Ошибки в работе ВМ
  • Переполнение разрядной сетки
  • Попытка делить на 0
  • Выход программы за пределы выделенного участка ОП
  • Обращение по вв/выв от периферийного устройства
Перед переходом к очередному циклу команда ЦП проверяет входы на наличие запросов. Обнаружив запрос, ЦП запоминает информацию, необходимую для продолжения нормальной работы после возврата и переходит к выполнению прерывающей программы. По завершению обработки прерывания ЦП переходит к выполнения прерванного процесса, используя запомненную информацию.
Передача управления при прерываниях

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

  • Аппаратные – события от периферийных устройств(например, нажатия клавиш клавиатуры, движение мыши, сигнал от таймера, сетевой карты или дискового накопителя) – внешние прерывания, или события в микропроцессоре – (например, деление на ноль) – внутренние прерывания.
  • Программные – Инициируются выполняемой программой явным исполнение специальных инструкций, то есть синхронно, а не асинхронно. Программные прерывания могут служить для вызова сервисов операционной системы.

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

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

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

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

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

Время реакции определяется для запроса с наивысшим приоритетом.

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

Форма входа
Поиск
Друзья сайта
Статистика
Copyright MyCorp © 2018
Создать бесплатный сайт с uCoz