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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Принцип работы системы прерываний можно разделить на несколько этапов:

1)установка запрета на прием запросов прерывания;

2) сохранение всех информации прерванной программы, которая необходима для возобновления выполнения это программы (контекста программы) после завершения обработки прерывания;

3)снятие запрета на прием запросов прерывания;

4) идентификация источника запроса прерывания, определение нужного обработчика прерывания и его запуск;

5)завершение программы обработки прерывания;

6)установка запрета на прием запросов прерывания;

7) восстановление контекста прерванной программы (возврат к состоянию на момент прерывания);

8) снятие запрета на прием запросов прерывания;

9) возврат к выполнению прерванной программы.

 

Основные характеристики системы прерываний следующие:

число источников запросов прерывания (количество входов в систему прерывания);

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

время реакции на запрос прерывания — время между появлением запроса прерывания и началом выполнения прерывающей программы; определяется для запроса с наивысшим приоритетом;

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

 

Труба может спросить про вектор прерываний и про контроллер прерываний. Поэтому добавлю.

Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний, содержащую адреса обработчиков прерываний.

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

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

Системы ввода-вывода.

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

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

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

Контроллер устройства по окончании ввода-вывода генерирует сигнал о прерывании, в результате управление получает обработчик прерывания – модуль ядра ОС. Указатели обработчиков всех видов прерываний собраны в резидентный массив – вектор прерываний.

Для оптимизации ввода-вывода используется прямой доступ к памяти (DMA) – метод организации ввода-вывода, при котором в качестве буфера устройства используется фрагмент основной памяти. Данный метод основан на использовании специальных DMA-контроллеров. DMA позволяет разгрузить процессор, освободив его от работы по пересылки данных для ввода-вывода.

В операционной системе API для ввода-вывода имеет иерархическую структуру. Системные вызовы – верхний уровень – инкапсулируют поведение устройств ввода-вывода. Более низкий уровень – драйверы устройств – скрывают различия между контроллерами устройств от ядра ОС.

Устройства ввода-вывода подразделяются на блочные и символьные, последовательного и произвольного доступа, резервируемое или разделяемое, только для чтения, для записи или для чтения-записи, и различаются по скоростям работы. Блочные устройства выполняют команды вида: прочитать, записать или найти блок с заданным номером. Символьные устройства выполняют команды вида: ввести символ, вывести символ, с программируемой возможностью построчного редактирования.

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

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

Ввод-вывод подразделяется на синхронный и асинхронный.

/* Синхронный(блокируемый) ввод-вывод основан на простой, интуитивно понятной парадигме: процесс задерживается, пока ввод-вывод не закончится. Он более прост для использования и понимания, но в силу своей недостаточной эффективности, недостаточен для некоторых применений. Для оптимизации ввода-вывода возврат из системного вызова для ввода-вывода может происходить по мере доступности информации. Применяется пользовательский интерфейс для копирования данных (буферизация). Ввод-вывод также часто реализуется с помощью многопоточности (multi-threading): ввод-вывод выделяется в отдельный поток. Из системных вызовов для ввода-вывода предусмотрен быстрый возврат с выдачей в качестве результата числа байтов, фактически прочитанного или записанного.

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

 

Системы ввода-вывода характеризуются следующими свойствами:

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

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

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

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

 



Поделиться:


Последнее изменение этой страницы: 2016-04-07; просмотров: 505; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.234.83.135 (0.01 с.)