Мегаобучалка Главная | О нас | Обратная связь


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



2015-12-06 530 Обсуждений (0)
Понятие системы прерывания программ 0.00 из 5.00 0 оценок




 

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

Прерывание программы – это ЭВМ, прекратить выполнение текущей программы и передать управление программе, реализующей реакцию ЭВМ на возникшую ситуацию.

Устройства, требующие вмешательства ЭВМ называются источниками прерываний.

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

Программу, затребованную запросом прерывания, называют прерывающей программой.

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

По завершении этой программы ЭВМ возвращается к выполнению текущей программы.

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

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

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

Запросы прерывания могут возникать внутри самой ЭВМ или во внешней среде. К первым относятся: запросы при переполнении разрядной сетки, при попытке деления на 0, при выходе из установленной для программы области памяти, затребование периферийным устройством операции ввода/вывода, завершение операции ввода/вывода устройством или возникновение особой ситуации при этой операции.

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

К этим параллельным процессам в частности, относят процесс выполнения текущей программы, процесс контроля правильности работы ЭВМ, операции ввода/вывода, технологические процессы в управляемом машиной объекте и другие.

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

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

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

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

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

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

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

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

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

 

2. Характеристики системы прерываний

 

Для оценки эффективности систем прерываний могут быть использованы следующие характеристики:

Общее число запросов прерывания (входов в систему прерываний).

Время реакции – время между появлением запроса прерывания и моментом прерывания текущей программы.

Приведем упрощенную диаграмму процесса (см. рис. 1).

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

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

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

Оно может оказаться недопустимо большим для ЭВМ, работающих в реальном масштабе времени.

 

Рис. 1. Упрощенная временная диаграмма процесса прерывания

 

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

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

Затраты времени на переключение программ (издержки прерывания) равны суммарному расходу времени на заполнение и восстановление состояния программы.

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

Если после перехода к прерывающей программе и до ее окончания прием запросов прекращается, то говорят, что система имеет глубину n, равную 1.

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

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

 

Рис. 2. Процессы прерывания с различной глубиной прерывания и дисциплиной обслуживания.

 

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

Если запрос на прерывание от определенного источника прерывания окажется не обслуженным к моменту прихода нового запроса от того же источника, то возникает так называемое насыщение системы прерываний. В этом случае предыдущий запрос будет утерян.

Число уровней прерывания (число классов прерывания). В ЭВМ число различных запросов (причин) прерывания может достигать нескольких десятков или сотен. В таких случаях часть запросов разделяют на отдельные классы или уровни.

Совокупность запросов, инициирующих одну и ту же прерывающую программу, образует класс или уровень прерывания. Разделение запросов на классы прерывания представлено на рис. 3.

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

Запросы классов прерывания ЗПК формируются схемами ИЛИ, объединяющих разряды РгЗП, относящихся к соответствующим уровням прерывания.

Еще одна схема ИЛИ формирует общий сигнал прерывания ОСП, поступающий в устройство управления процессора. После принятия запроса прерывания на исполнение и передачу управления прерывающий программе соответствующий триггер РгЗП сбрасывается.

Следует отметить, что объединение запросов в классы прерывания позволяет уменьшить объем аппаратуры, но приводит к замедлению работы системы прерываний.

 

Рис. 3. Разделение запросов на классы прерывания.


Программно-управляемый приоритет прерывающих программ

Относительная степень важности программ, их частота повторения, относительная степень срочности в ходе вычислительного процесса могут меняться, требуя установления новых приоритетных соотношений.

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

В ЭВМ широко применяются два способа программно-управляемого приоритета прерывающих программ:

использование порога прерывания;

использование маски прерывания.

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

Порог прерывания задается командой программы, устанавливая в регистре код порога прерывания.

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


Рис. 4. Маскирование прерываний.

 

Состояние 1 в разряде РгМ разрешает, а состояние 0 запрещает (маскирует) прерывание текущей программы от соответствующего запроса. Таким образом, программа, изменяя маску в РгМ, может устанавливать произвольные соотношения между программами, без перекоммутации линий, по которым поступают запросы прерываний. Каждая прерывающая программа может установить свою маску.

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

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

 

3. Организация перехода к прерывающей программе

 

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

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

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

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

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

 

Литература

  1. http://ru.wikipedia.org/wiki/%C0%F1%F1%E5%EC%E1%EB%E5%F0
  2. http://suntechnic.narod.ru/library/technical/unix/UNIX/glava_25.htm
  3. http://www.programmers.kz
  4. http://life-prog.ru
  5. http://dic.academic.ru
  6. http://www.jur-portal.ru
  7. http://www.ipkro.isu.ru/informat/methods/tests/ts_os.htm
  8. http://ru.wikipedia.org/wiki/Windows_Server_2008
  9. http://xreferat.ru/33/5062-1-pakety-prikladnyh-programm.html
  10. http://www.neuch.ru/referat/81124.html

 

 



2015-12-06 530 Обсуждений (0)
Понятие системы прерывания программ 0.00 из 5.00 0 оценок









Обсуждение в статье: Понятие системы прерывания программ

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (530)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)