Передает сообщение об окончании процесса ввода-вывода процессу, если процесс ожидает завершения операции.


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

Каждое устройство ввода-вывода содержит 4 магистрали – питание, данные, адреса и управление. Если учесть, что для каждой магистрали требуется как минимум 2 проводника (ввод и вывод) – получим 8 проводов. Добавим ещё сигнальную шину и получим 10 проводников. Эти проводники формирую порт, к которому можно подключить практически любое устройство.

Суммарное количество портов ограничено значение счетчика 65535 (2**16). Это 8-ми битные порты. Для организации работы 16 битных устройств требуется соединить 2 порта, при этом может использоваться только 2**15 портов. Для современных 64 битных устройств остается всего 8192 порта (2**13), а для 128 битных устройств остается всего 4096 адресов. Пока это не выглядит серьезным ограничением для персональных компьютером.

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

Как же работать с устройством, если набор команд к портам одинаков, а устройства разные. Для этого со стороны ОС используются драйверы, а со стороны устройств – контролеры.

 

Драйвера

Драйвера работают в двух режимах: режим обмена с опросом готовности и режим обмена с прерывания.

Если управление осуществляет центральный процессор, он посылает устройству управления команду выполнить некоторое действие. Исполнительное устройство выполняет операции и транслирует ЦП понятные ему сигналы.

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

Конечно ЦП выгоднее выдав команду ввода – вывода вообще отключиться от этой задачи. А сигналы готовности от устройств можно трактовать как прерывания и передавать их на обработку драйверу устройства. Работа с прерываниями – асинхронное управление.

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

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

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

Секция завершения выключает устройство вводы-вывода из состава ОС.

Драйвера в режиме прерываний сложнее драйверов на основе опроса. Попытка смешивания драйверов обоих типов в одной системе приводит к зависаниям. Так в ОС Windows NT драйвера печати работают в режиме опроса и при печати загружают систему на 100%.



Дата добавления: 2018-11-26; просмотров: 430;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.006 сек.