рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Организация прерывания программ

Организация прерывания программ - раздел Компьютеры, Архитектура компьютеров Назначение Системы Прерывания – Реагировать На Определенные События Путем Пре...

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

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

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

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

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

4. Прерывания при обращении к супервизору. Для выполнения действий, выходящих за рамки возможностей непривилегированных операций, используются программы супервизора. Обращение к ним инициируется командой ОБРАЩЕНИЕ К СУПЕРВИЗОРУ, при выполнении которой процессор переключается в состояние супервизор и управление передается супервизору. Данная команда прерывает работу процессора – прекращает выполнение прикладной программы и инициирует работу супервизора.

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

Каждая причина (сигнал) прерывания идентифицируется номером 1, 2, …, называемым кодом причины прерывания. Код причины прерывания формируется процессором в момент поступления сигнала, вызывающего прерывание.

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

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

Для управления прерываниями используется маска прерываний, представляющая собой двоичное слово M = m1 m2 mk с числом разрядов, равным числу маскируемых причин прерывания. Если разряд маски mk = 0, то прерывание по причине k запрещено (замаскировано), если разряд маски mk = 1, то прерывание по причине k разрешено (не замаскировано). Маска прерываний хранится в процессоре, куда она загружается командой Установить маску А, где А – адрес. По этой команде слово с адресом А загружается в качестве маски в процессор и определяет отношение процессора к сигналам прерывания. Если все разряды маски равны нулю, процессор не реагирует ни на одну причину прерывания.

В простейших компьютерах используется следующий способ маскирования прерываний. В систему команд компьютера вводятся две системные команды ЗАПРЕТИТЬ ПРЕРЫВАНИЯ и РАЗРЕШИТЬ ПРЕРЫВАНИЯ, выполнение которых приводит к запрещению и разрешению прерываний одновременно по всем причинам.

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

Операция прерывания. Операция прерывания инициируется незамаскированным сигналом прерывания, имеющим наивысший приоритет среди других сигналов, и выполняется процессором. Операция прерывания состоит из следующих действий: 1) выполнение текущей программы прерывается; 2) запоминается информация, характеризующая состояние процессора на момент прерывания; 3) инициируется программа, соответствующая причине прерывания. Информация о состоянии процессора на момент прерывания обычно записывается в основную память, чтобы иметь возможность определить в программе команду, к моменту выполнения которой произошло прерывание, и в дальнейшем продолжить выполнение прерванной программы. Чтобы инициировать прерванную программу, нужно восстановить состояние процессора – загрузить в процессор данные, запомненные в момент прерывания.

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

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

Организация прерываний на основе уровней.Прерывание организуется по схеме, представленной на рис. 3.15. Для хранения информации о прерванной программе используется область основной памяти, состоящая из Q ячеек с адресами 0, 1, … Q-1. Для хранения информации об одной программе используется q ячеек, совокупность которых называется уровнем прерывания. В ячейки уровня может записана вся информация, характеризующая состояние процессора (а тем самым и программы) на момент прерывания: адрес команды АК, перед выполнением которой произошло прерывание; маска М прерываний; код причины прерывания К; состояние итогового регистра R и т. д. Число ячеек q в уровне определяется количеством такой информации. Для каждой из n причин прерывания 0, 1, …, n–1 выделяется свой уровень с соответствующим номером.

Уровень 0 будут занимать ячейки с адресами 0, …, q–1, уровень 1 – ячейки q, …, 2q–1 и т. д. Уровням 0, …, n–1 соответствуют программы, хранимые в основной памяти. Когда программа загружается в память, она приписывается некоторому уровню J и в ячейки уровня загружается вся информация о программе: адрес программы АК; маска М прерываний, характеризующая отношение программы к различным причинам прерывания, и. т. д. Если процессор выполняет программу, приписанную уровню L, то номер уровня L хранится в процессоре.

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

1. Информация о состоянии процессора записывается в уровень L, к которому относится текущая программа. При этом значения АК, M, K, R и т. д., характеризующие состояние процессора, записываются в ячейки Lq, Lq + 1, ..., Lq + (q – 1) уровня L.

2. Из уровня J, соответствующего причине прерывания, информация загружается в процессор. При этом значения, хранимые в ячейках Jq, Jq + 1, ..., Jq + (q – 1) уровня J, присваиваются соответственно адресу команды АК, маске М и т. д.

3. Изменяется номер уровня L:=J, определяющий программу, и начинается выполнение команды с адресом АК, равным пусковому адресу программы J. Тем самым инициируется программа-преемник, обслуживающая прерывание по причине J.

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

Программы, обслуживающие прерывания, являются программами супервизора. Они инициируются соответствующими сигналами прерывания. Прикладные программы также приписываются уровням, обычно последним. Эти программы могут быть прерваны и информация о них будет сохранена в ячейках соответствующего уровня. Прикладные программы инициируются супервизором, для чего используется команда ПЕРЕХОД К УРОВНЮ J, где–J номер уровня. Количество уровней зависит от числа причин прерывания и максимального коэффициента мультипрограммирования, определяющего предельное количество параллельно обрабатываемых прикладных программ.

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

 

 
 

 

 


Поле М содержит маску защиты от прерываний. Поле КС состоит из битов, определяющих состояния процессора: задача – супервизор, счет – ожидание и т. д. В поле К размещается код причины прерывания, в поле ПР – признак результата, а в поле АК – адрес команды и т. д. Таким образом, ССП аналогично уровню прерывания, но в отличие от последнего содержит минимальное количество информации о прерываемой программе.

С использованием ССП прерывания обрабатываются по схеме рис. 3.16. Для каждой причины прерывания назначается отдельное ССП: ССП1 – для внешних прерываний, ССП2 – для прерываний при обращении к супервизору, ССП3 – для программных прерываний, ССП4 – для прерываний от схем контроля, ССП5 – для прерываний от ввода-вывода. Информация о прерванных программах представляется в старых ССП, а информация о программах-преемниках – в новых ССП. Для хранения каждого ССП в основной памяти выделяется фиксированная область длиной, например, 8 байт. Старые ССП1, …, ССП5 хранятся в памяти по адресам α1, …, α5 и новые ССП по адресам β1, …, β5. Сигнал прерывания λК, поступающий в процессор, инициирует операцию прерывания, которая выполняется следующим образом. Сначала запоминается информация о прерываемой программе. Для этого из слов М, КС, ПР, АК и т. д. Формируется текущее ССП, имеющее структуру (3. 1). Текущее ССП записывается в память на место ССПk, соответствующего причине прерывания. Так, если сигнал λК является прерыванием от ввода-вывода, то текущее ССП записывается на место старого ССП5, т. е. по адресу α5. Затем в процессор загружается ССП, содержащее информацию о программе-преемнике. Это выполняется путем передачи в процессор нового ССПК, номер которого соответствует причине прерывания. В результате передачи в процессоре устанавливается маска М, состояние КС, признак результата ПР и пусковой адрес АК, соответствующий программе-преемнику. После выполнения этих действий процессор начинает выполнять команду с адресом АК, т. е. программу-преемник в режиме, определенном новым ССП.

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

На основе информации, содержащейся в старых ССП, супервизор устанавливает причину прерывания и управляет порядком обработки задач. Супервизор освобождает от информации область старых ССП, путем передачи информации из ячеек α1, …, α5 в выделенную для этих целей область основной памяти, принадлежащую супервизору. Супервизор подготавливает прерванную программу к дальнейшей обработке передачей соответствующего ССП в область новых ССП. Очередной сигнал прерывания вызовет загрузку этого ССП в процессор, и выполнение программы будет продолжено. Супервизор может инициировать программу путем загрузки ССП в процессор с помощью команды ЗАГРУЗИТЬ ССП А, где А – адрес ячейки основной памяти, начиная с которой размещается ССП. Данная команда является привилегированной.

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

Одноуровневое прерывание. В микроконтроллерах, относящихся к классу компьютеров специального применения, может использоваться следующая простая схема организации прерываний. Для сохранения информации о прерываемой программе и перехода к программе-преемнику выделяются две ячейки памяти с адресами 0 и 1. Ячейка 0 служит для сохранения адреса команды прерываемой программы. Ячейка 1 используется для хранения пускового адреса программы-преемника, который должен быть заблаговременно записан в эту ячейку. При поступлении сигнала прерывания процессор записывает адрес очередной команды в ячейку 0, тем самым фиксируя место, на котором была прервана текущая программа. Затем процессор читает из ячейки 1 адрес и переходит к выполнению команды с указанным адресом, в результате чего начинает выполняться программа-преемник. Сохранение остальной информации, например, состояния итогового регистра, производится с помощью команд, включаемых в программу-преемник. Очередная программа, переход к которой инициирован операцией прерывания, может заслать в ячейку 1 новый адрес – адрес другой программы, с помощью которой будет обрабатываться очередная программа.

– Конец работы –

Эта тема принадлежит разделу:

Архитектура компьютеров

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

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

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

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

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

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

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

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

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги