Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль2.doc
Скачиваний:
16
Добавлен:
25.08.2019
Размер:
258.05 Кб
Скачать

Менеджер ввода-вывода

Менеджер ввода-вывода (супервизор I/O) – модуль для согласования всех компонентов IOS, а также для взаимодействия с пользовательскими процессами и другими подсистемами ОС.

Распределение функций по уровням менеджера:

1. Верхний слой – пользовательский интерфейс ввода-вывода. Принимает от пользовательских процессов запросы на I/O и переадресует их отвечающим за определенный класс устройств модулям и драйверам, а также возвращает процессам результаты операций ввода-вывода.

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

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

Еще одна функция – создание стандартного внутреннего интерфейса модулей I/O между собой, дополняющего внешние интерфейсы IOS с прикладными процессами, ядром и аппаратурой.

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

Способы доступа к устройствам ввода-вывода

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

1. Каждый управляющий регистр устройства I/O отображается на адресное пространство ОЗУ. Каждому управляющему регистру назначается уникальный адрес.

2. Каждому регистру назначается номер порта I/O (8- или 16-разрадное целое число). При такой схеме адресные пространства ОЗУ и устройств I/O не пересекаются.

Для обращения к портам ввода-вывода существует два способа:

  1. Под управлением ЦП.

  2. С использованием DMA-контроллера (direct memory access – прямой доступ к памяти) как правило, он устанавливается на материнской плате.

Контроллер DMA имеет прямой доступ к системной шине, помимо ЦП. Он содержит несколько регистров, доступных ЦП для чтения и записи. Через эти регистры ЦП программирует DMA-контроллер, задавая порт ввода-вывода, направление переноса (чтение или запись), перенос.

Операция чтения с диска происходит так:

При отсутствии DMA: Сначала контроллер считывает с диска блок (побайтно), пока он не окажется целиком во внутреннем буфере контроллера диска. Затем контроллер проверяет контрольную сумму, чтобы убедиться, что при чтении не было ошибки. После этого контроллер инициирует прерывание, после чего начинает работу ОС, сохраняя прочитанный блок в ОЗУ.

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

Недостатки DMA:

  1. ЦП значительно превосходит DMA по скорости выполнит ту же работу гораздо быстрее. Но без него процессорное время будет расходоваться крайне нерационально так как он будет вынужден ждать медленные устройства I/O или делать много лишних переключений. То есть, всё же, предпочтительнее использовать медленный DMA, так как он избавляет процессор от обработки медленных синхронных процедур I/O, а также и части асинхронных.

  2. Компьютер без DMA дешевле.