КАТЕГОРИИ: Архитектура-(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) |
Понятие прерывания
Прерывание – это важная процедура, которая позволяет изменить нормальную последовательность команд, выполняемых процессором. Процессор должен реагировать на события, которые происходят вне его. Эту реакцию можно реализовать двумя способами:
Устройство, которое требует внимания процессора, сообщает об этом с помощью специального сигнала (запрос на прерывание). По этому сигналу управление CPU передается ОС. ОС запоминает состояние прерванного процесса и хранит эту информацию в спец. регистре микропроцессора. Такой регистр называется СТЕК. Затем ОС анализирует, от какого устройства произошло прерывание и затем передает управление программе, которая управляет устройством, выдавшим запрос на прерывание. Такая программа называется «обработчик прерывания». Прерывание может быть вызвано не только каким-нибудь устройством, но и выполняющимся процессом. В начале прерывания использовались в основном для управления процессором устройствами ввода-вывода. Затем прерывания стали использовать для организации внутренней работы ЭВМ. В соответствии с этим существуют следующие типы прерываний: 1. Аппаратные прерывания – прерывания от устройств компьютера. 2. Программные прерывания – прерывания, которые вырабатывают процессы, находящиеся на стадии выполнения. 3. Логические прерывания – Эти прерывания вырабатывает сам процессор, когда встречается с каким-либо необходимым условием: а) деление на 0 б) переполнение регистров микропроцессора в) пошаговое выполнение программ г) режим контрольных точек. Каждое прерывание имеет два параметра:
Вектор прерывания – это адрес ячейки памяти, где хранится программа – обработчик прерывания. Прерывания обозначаются - IRQ.
Cистема прерывания программ (СПП) 1. Понятие о состоянии программы. Вектор (слово) состояния Вектор состояния, или слово состояния программы (ССП), в любой момент времени должен содержать информацию, достаточную для продолжения выполнения программы с точки, соответствующей моменту формирования данного вектора состояния. При этом предполагается, что остальная информация, характеризующая состояние программы, например, содержимое всех или части программно-адресуемых регистров, может при необходимости быть сохранена программным путем в оперативной памяти ЭВМ. ССП формируется в соответствующих регистрах центрального процессора (ЦП), изменяясь после выполнения каждой команды. Разные ЭВМ имеют разные наборы информационных элементов, образующих ССП. Например, в реальном режиме работы микропроцессора 80х86 ССП, сохраняемое в стеке, содержит следующие составляющие: 1. значение регистра сегмента команд CS (в ячейках памяти этого сегмента содержатся команды выполняемой программы); 2. значение регистра указателя команд IP; 3. значение регистра флагов FLAGS. 2. Принципы организации СПП При функционировании ЭВМ в ней самой и связанной с ней внешней среде могут возникать события, требующие немедленной реакции на них со стороны ЭВМ. Эта реакция состоит в том, что ЭВМ прерывает обработку текущей программы, которая является прерываемой, и переходит к выполнению другой программы, называемой прерывающей и специально предназначенной для обработки данного события. Рассматриваемый процесс называется прерыванием программ. Моменты возникновения некоторой части событий, требующих прерывания программ, заранее неизвестны и поэтому не могут быть учтены при программировании. Любое событие, требующее прерывания, сопровождается сигналом, оповещающим ЭВМ. Эти сигналы называются запросами прерывания и генерируются несколькими выполняющимися параллельно во времени процессами, например: - процессом выполнения текущей программы в ЦП и внутренней памяти ЭВМ; - процессом аппаратного контроля правильности работы ЭВМ, каналов и периферийных устройств (ПУ); - процессом функционирования каналов и ПУ; - процессом функционирования таймера; - процессом функционирования ЭВМ, сопряженной с данной ЭВМ, и т.д. Прерывания от устройства аппаратного контроля возникают при обнаружении этим устройством неисправности в ЭВМ, канале или ПУ. Прерывания ввода-вывода происходят при завершении работы канала или ПУ. Прерывания от таймера происходят при переполнении таймера. Возможность прерывания программ - важное свойство ЭВМ, позволяющее существенно повысить эффективность использования ее ресурсов, а также использовать ЭВМ для управления в системах реального времени. Для реализации прерывания в ЭВМ должны существовать соответствующие программные и аппаратные средства, называемые системой прерывания программ (СПП), или контроллером прерываний. Основные функции СПП состоят в запоминании ССП и переходе к прерывающей программе, при этом для запоминания ССП используется фиксированная зона оперативной памяти (например, в ЭВМ типа IBM/360 и IBM/370 и соответственно в ЕС ЭВМ) или же стековая память (например, в ЭВМ типа IBM PC с МП типа 80х86). При наличии нескольких источников запросов прерывания должен быть установлен определенный порядок (дисциплина) в обслуживании поступающих запросов. Другими словами, должны быть установлены приоритетные соотношения, определяющие, какой из нескольких поступивших запросов должен быть обработан в первую очередь и имеет ли он право прервать текущую программу. Приоритетный выбор запроса входит в процедуру перехода к прерывающей программе. Важную роль играет регистр масок прерываний, разряды которого могут программно и аппаратно устанавливаться в "1" или "0". Этим достигается программно-управляемый приоритет прерываний. Установленный в "1" триггер регистра масок запрещает соответствующее прерывание, а в положении "0" разрешает его. Некоторые причины прерывания в каких-то конкретных типах ЭВМ не могут быть программно замаскированы. 3. Векторное прерывание В современных ЭВМ обычно реализуется так называемое векторное прерывание, при котором источник прерывания выставляет запрос прерывания и одновременно выставляет на шины интерфейса с центральным процессором код адреса своего вектора прерывания в памяти ЭВМ, т.е. для разных причин сразу же включаются аппаратно соответствующие им прерывающие программы, называемые обработчиками прерываний. В некоторых ЭВМ источник прерывания вместо кода адреса своего вектора выставляет номер своего прерывания, по которому СПП формирует адрес внутренней памяти с новым ССП. 4. Обработчик прерывания Перечислим основные действия, который должен выполнить обработчик прерываний: 1. Сохранять при необходимости содержимое всех или части программно-доступных регистров (эту процедуру иногда называют переключением контекста); 2. Заблокировать все прерывания, возникновение которых в процессе выполнения обработчика может привести к конфликту (часто это выполняется аппаратурой ЭВМ без участия программы); 3. Разрешить все прерывания, которые имеют право возникать во время обработки данного прерывания; 4. Определить источник прерывания; 5. Выполнить запланированную обработку прерывания; 6. Восстановить ССП; 7. Разрешить все прерывания, которые были запрещены при обработке данного прерывания. 8. Возобновлять выполнение прерванного процесса; вместо этого обработчик прерывания может заканчивать свою работу переводом ЭВМ в состояние ожидания (например, при машинных сбоях) или передачей управления ОС. 5. Основные типы прерываний в ЭВМ типа IBM PC с МП 80х86 Прерывания в этой ЭВМ могут быть разбиты на следующие группы: 1. Немаскируемое аппаратное прерывание, возникающее в результате серьезного аппаратного сбоя в работе МП и внутренней памяти. 2. Внешние аппаратные прерывания, возникающие при возникновении сигналов прерывания от таймера, клавиатуры и различных ПУ; 3. Внутренние события, называемые исключениями и возникающие в том случае, если процессор не может выполнить очередную команду, например, вследствие равенства делителя нулю при выполнении операции деления, недопустимом коде команды и т.д.; к этой же группе относится прерывание, называемое исключением отладки и возникающее в том случае, если по заданию программиста в команде при трансляции был установлен признак так называемой ловушки; 4. Программные прерывания, возникающие при выполнении процессором команды int с числовым аргументом.
Дата добавления: 2014-01-07; Просмотров: 2118; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |