Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / Lectures / Lect3v12.doc
Скачиваний:
56
Добавлен:
28.05.2015
Размер:
706.05 Кб
Скачать

18. Назначение, основные характеристики и функции систем прерывания программ

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

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

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

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

Такие события могут быть программно определяемыми и программно независимыми.

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

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

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

Сигнал о (программно независимом) событии, требующем прерывания, будет называться запросом прерывания (в англоязычной литературе запрос прерывания – это Interrupt Request, откуда и происходит используемое в ПЭВМ сокращение IRQ). В отличие от него, программно определяемые события, часто имеют иные названия, например, в ПЭВМ говорят об исключениях, переход к обработке которых осуществляется немного иначе, чем для запросов прерываний. Кроме того, существуют, так называемые, программные прерывания, которые представляют собой программный вызов системных (стандартных) функций.

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

Рис.18.1. Временнáя диаграмма прерывания (Прог 1 – прерываемая программа, ЗПр – запрос прерывания, Прог 2 – прерывающая программа, tр – время реакции на запрос, tз – время запоминания состояния , tв – время восстановления состояния)

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

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

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

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

1а. Выбор на обслуживание запроса с наивысшим приоритетом

1б. Учет и управление приоритетом программ по отношению к запросам прерываний.

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

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

2б. Запоминание состояния прерываемой программы.

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

2г. Передача управления прерывающей программе и ее выполнение.

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

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

3б. Передача управления прерванной программе (на точку прерывания).

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

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

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

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

3. Количество типов (классов) прерываний – количество различных по способу обработки или по характеру источников типов прерываний, имеющихся в системе.

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

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

- опросные системы, в которых источник запроса прерывания определяется поочередным опросом всех возможных источников запросов;

- векторные системы, в которых источник запроса прерывания идентифицируется либо входом, к которому он подключен, либо кодом, который он передает в процессор;

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

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

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

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

Рис.18.2. Взаимосвязь глубины прерывания со временем реакции

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

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

Соседние файлы в папке Lectures