Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответник на госы.docx
Скачиваний:
120
Добавлен:
08.02.2015
Размер:
1.89 Mб
Скачать

1.4. Организация и обработка прерываний от внешних устройств эвм. Схема с общей шиной. Буферизация.

Сигналы прерывания и организация их обработки.

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

Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера.

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

Рис. 14.1.  Выполнение прерывания в компьютере: tр - время реакции процессора на запрос прерывания; tс - время сохранения состояния прерываемой программы и вызова обработчика прерывания; tв - время восстановления прерванной программы

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

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

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

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

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

Время реакции определяется для запроса с наивысшим приоритетом.

Глубина прерывания - максимальное число программ, которые могут прерывать друг друга. Глубина прерывания обычно совпадает с числом уровней приоритетов, распознаваемых системой прерываний. Работа системы прерываний при различной глубине прерываний (n) представлена на рис. 14.2. Здесь предполагается, что с увеличением номера запроса прерывания увеличивается его приоритет.

 

 

Рис. 14.2.  Работа системы прерываний при различной глубине прерываний

 

Без учета времени реакции, а также времени запоминания и времени восстановления:

t11+t12=t1,

t21+t22=t2.

 

Прерывания делятся на аппаратные и программные [4]

 

Аппаратные прерывания используются для организации взаимодействия с внешними устройствами. Запросы аппаратных прерываний поступают на специальные входы микропроцессора. Они бывают:

·                     маскируемые, которые могут быть замаскированы программными средствами компьютера;

·                     немаскируемые, запрос от которых таким образом замаскирован быть не может.

 

Программные прерывания вызываются следующими ситуациями:

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

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

 

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

 

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

1. определение наиболее приоритетного незамаскированного запроса на прерывание (если одновременно поступило несколько запросов);

2. определение типа выбранного запроса;

3. сохранение текущего состояния счетчика команд и регистра флагов;

4. определение адреса обработчика прерывания по типу прерывания и передача управления первой команде этого обработчика;

5. выполнение программы - обработчика прерывания;

6. восстановление сохраненных значений счетчика команд и регистра флагов прерванной программы;

7. продолжение выполнения прерванной программы.

 

Этапы 1-4 выполняются аппаратными средствами ЭВМ автоматически при появлении запроса прерывания. Этап 6 также выполняется аппаратно по команде возврата из обработчика прерывания.

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

Структура ЭВМ с общей шиной.

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

Рисунок 1.4.2- Структура ЭВМ на основе ОШ

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

Наибольшее распространение имеют три основные (типовые) конфигурации (структуры) ВК (ЭВМ). Первая, простейшая, строится на основе единого интерфейса (ОШ) (рисунок 3.7).

ОШ здесь выполнена как двунаправленная асинхронная магистраль. Через нее обмениваются информацией все устройства. Обмен осуществляется по принципу «ведущий – ведомый».

Основная память в этой структуре всегда пассивна. Активным может быть ЦП или КПУ. Для подключения ПУ к ЭВМ (к ОШ) используется контроллер ПУ (КПУ), выполняющий роль устройства управления при обмене информацией с другими устройствами. Для каждого типа ПУ используется свой тип контроллера: контроллер клавиатуры, принтера, монитора и т. п. Ведущее устройство выставляет запрос на обмен, т. е. фактически запрос на захват ОШ. Получив ОШ в свое распоряжение, ведущее устройство выставляет адрес ведомого устройства и управляет обменом информации с ним по ОШ, посылая необходимую адресную и управляющую информацию. Например, при обмене с ОП – адрес ячейки ОП и сигнал чтения/записи. Такую структуру имеют обычно мини – и микро-ЭВМ: РДР/11, СМ ЭВМ. Достоинства: простота структуры и обмена информации по ОШ.

Недостатки: при большом количестве устройств ПУ, в частности, ОШ становится «узким» местом в системе ввиду ее ограниченной пропускной способности. Активные устройства при большой загрузке  ОШ достаточно часто (все с большей вероятностью) обнаруживают ОШ занятой обменом с другими устройствами и вынуждены ждать ее освобождения. Ожидание в очереди на обмен ограничивает производительность ВК.

Как быть? Как уменьшить простои устройств и, следовательно, увеличить производительность? Первый способ – увеличить пропускную способность ОШ, если можно. Если нельзя, то применить второй способ – использовать несколько интерфейсов: два, три и т. д.

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

В силу указанных недостатков единый интерфейс находит применение в тех случаях, когда количество ПУ невелико (до 10-15 штук), т. е. в микро-ЭВМ. В тех случаях, когда количество ПУ велико (более 10-15), использование ОШ неэффективно.

Буферизация.

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

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

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

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