Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка и реализация ОС.doc
Скачиваний:
82
Добавлен:
24.11.2018
Размер:
3.09 Mб
Скачать

5.1.1.2. Прерывания

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

5.1.1.3. Прямой доступ к памяти

Центральному процессору необходимо адресовать контроллеры устройств, чтобы обмениваться с ними данными. Процессор может запрашивать данные у контроллера побайтно, но если требуется получать от устройства большие блоки (например, при считывании с диска), значительная часть времени будет потрачена впустую. По этой причине для взаимодействия с памятью применяют другой метод, называемый прямым доступом к памяти (Direct Memory Access, DMA). Операционная система может использовать DMA только при наличии контроллера прямого доступа к памяти (DMA-контроллера). Большинство компьютеров оснащено таким контроллером. Иногда DMA-контроллер встраивают в другие контроллеры (например, дисковые), но в этом случае он требуется каждому устройству. Чаще системы оснащают единственным DMA-контроллером, который обычно размещается на материнской плате. Он управляет обменом данными с множеством устройств ввода-вывода, причем зачастую параллельно. Где бы физически ни располагался DMA-контроллер, он имеет независимый от процессора доступ к системной шине (рис. 5.2.) DMA-контроллер имеет несколько регистров, доступных процессору для чтения и записи: регистр адреса, счетчик байтов и ряд регистров управления. Последние определяют используемый порт ввода-вывода, направление обмена данными (чтение или запись), единицу обмена (байт или слово) и число байтов, передаваемых в одном цикле.

Рис. 5.2.

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

5.1.2.1. Программная составляющая ввода-вывода

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

Уровни разбиения программного обеспечения ввода-вывода:

- Обработчики прерываний (нижний уровень),

- Драйверы устройств,

- Независимое от устройств, программное обеспечение ввода-вывода,

- Пользовательские программы (верхний уровень).