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

Обновлено: 17.05.2024

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

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

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

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

Запросы на прерывание могут возникать как внутри самой ЭВМ, так и во внешней среде.

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

Внешние запросы могут поступать от датчиков технологического процесса и других ЭВМ.

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

Система прерываний позволяет значительно эффективнее использовать процессор при наличии нескольких протекающих параллельно во времени процессов.

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

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

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

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

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

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

Прерывающая программа, как правило, состоит из трех частей:

1) подготовительной, обеспечивающей сохранение состояния прерванной программы;

2) основной, выполняющей затребованную запросом работу;

3) завершающей, обеспечивающей продолжение работы прерванной программы.

Характеристики системы прерывания:

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

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

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

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

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

Насыщение системы прерываний

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

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

Обычно прерывание допускается после завершения выполнения текущей команды. В этом случае время реакции определяется в основном временем выполнения одной команды.

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

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

Число классов (уровней) прерываний

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

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

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

Приоритетное обслуживание запросов прерывания

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

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

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

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

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

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

Процедура прерывания с опросом источников прерывания

В системе с фиксированными приоритетами каждому источнику запросов соответствует отдельный разряд в регистре запросов прерывания.

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

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

Циклический опрос источников прерываний

Опрос k линий источников прерывания производится циклически с помощью n-разрядного счетчика, на который с некоторой частотой поступают импульсы от тактового генератора. Поиск приоритетного запроса прерывания начинается со сброса счетчика и триггера T в нулевое состояние; при этом импульсы генератора начинают поступать на вход счетчика. При помощи дешифратора и элементов И в каждом такте поиска проверяется наличие запроса прерывания, номер которого совпадает с кодом счетчика. Если на данном входе нет запроса, то к счетчику прибавляется 1 и проверяется следующий вход. Если имеется запрос, триггер T переходит в состояние 1; при этом в процессор посылается общий сигнал прерывания ОСП и прекращается поступление импульсов на вход счетчика, т.е. завершается цикл просмотра входов системы прерывания. Содержимое счетчика используется для формирования начального адреса прерывающей программы.

Цепочечная однотактная схема определения приоритетного запроса

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

Рассмотрим цепочечную однотактную схему определения приоритетного запроса.

Процесс определения приоритетного запроса инициируется сигналом "Приоритет", поступающим на цепочку последовательно включенных схем И. При отсутствии запросов этот сигнал пройдет через цепочку и сигнал общего запроса прерывания не сформируется. Если среди выставленных запросов прерывания наибольший приоритет имеет i-й запрос, то распространение сигнала "Приоритет" правее схемы И с номером i блокируется. На i-м выходе цепочечной схемы будет сигнал 1, а на всех остальных - 0. При этом в процессор поступает общий сигнал прерывания, а шифратор формирует код i-го запроса.

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

ВЕКТОРНОЕ ПРЕРЫВАНИЕ

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

Более гибким и динамичным является векторное прерывание, при котором исключается опрос источников прерывания.

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

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

ПРОГРАММНОЕ УПРАВЛЕНИЕ ПРИОРИТЕТОМ

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

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

Метод порога прерывания

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

Порог прерывания - это минимальный уровень приоритета запросов, которым разрешается прерывать программу, выполняемую процессором.

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

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

Метод маски прерывания

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

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

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

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

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 06.11.2010
Размер файла 39,3 K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подобные документы

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

курсовая работа [1,5 M], добавлен 14.10.2010

Модели параллельного программирования; отладка параллельных программ. Реализация экспериментальной версии системы сравнительной отладки Fortran-OpenMP программ: получение, сбор и запись трассы, инструментарий программ, используемый формат файлов трассы.

дипломная работа [92,8 K], добавлен 17.10.2013

Принципы организационно-методического обеспечения образовательного процесса многоуровневого комплекса; согласованность учебных планов и программ. Диверсификационная схема реализации преемственных учебных программ на примере информационной системы ЮРГУЭС.

реферат [651,4 K], добавлен 20.03.2011

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

курсовая работа [1,4 M], добавлен 25.04.2012

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

курсовая работа [82,7 K], добавлен 18.05.2014

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

курсовая работа [29,2 K], добавлен 28.11.2010

Обзор существующих моделей параллельного программирования, основные средства отладки эффективности MPI-программ, общие проблемы всех средств трассировки. Создание экспериментальной системы отладки эффективности MPI-программ, этапы работы анализатора.

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

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

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

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

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

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

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

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

1) Запоминание состояние прерываемой программы и переход к прерывающей .

2) Восстановление состояния прерванной программы и переход к ней.

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

Характеристики системы прерывания:

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

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

3) Затраты времени на переключение программ- равны суммарному времени на запоминание и восстановление состояния программы.

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

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

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

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

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

  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

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

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

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

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

Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим ЭВМ. Назовем эти сигналы запросами прерывания. Программу, затребованную запросом прерывания, назовем прерывающей программой, противопоставляя ее прерываемой программе, выполнявшейся машиной до появления запроса.

З

Рис. 9.23. Прерывание программы
апросы на прерывания могут возникать внутри самой ЭВМ и в ее внешней среде. К первым относятся, например, запросы при возникновении в ЭВМ таких событий, как появление ошибки в работе ее аппаратуры, переполнение разрядной сетки, попытка деления на 0, выход из установленной для данной программы области памяти, затребование периферийным устройством операции ввода-вывода, завершение операции ввода-вывода периферийным устройством или возникновение при этой операции особой ситуации и др.. Хотя некоторые из указанных событий порождаются самой программой, моменты их появления, как правило, невозможно предусмотреть. Запросы во внешней среде могут возникать от других ЭВМ, от аварийных и некоторых других датчиков технологического процесса и т. п.

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

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

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

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

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

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

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

hello_html_m46ca504f.jpg

П

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

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

Читайте также: