Мегаобучалка Главная | О нас | Обратная связь


Отображение портов ввода–вывода в адресном пространстве



2018-07-06 520 Обсуждений (0)
Отображение портов ввода–вывода в адресном пространстве 0.00 из 5.00 0 оценок




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

Например, для управления IDE жестких дисков использует пул из 16 адресов 0xf000 –0xf00f. Это ресурсный узел. При этом определяется, что первые 8 адресов 0xf000 – 0xf007 используются для доступа к master-дискам а 8 адресов 0xf008-0xf00f для slave-дисков. Эти пулы также делятся 0xf000-0xf003 – для доступа блочных устройств(кешируемых), 0xf004-0xf007 для доступа символьных устройств (не кешируемых). (остальное разбиение касается primaryпартиций. Их может быть не более 4.)

Ядро сопровождает этот пул с помощью драйвера жесткого диска. Этот драйвер имеет номер в таблице ресурсов ядра и называется мажором. Адрес, точно указывающий на устройство называется минором. Таким образом, чтобы обратится блочному устройству намастер диску к первой primary таблице нужно обратится к специальному файлу в директории /dev/hda1 c 3 номером ядра и адресом 0xf000

Управление вводом-выводом

Со стороны операционной системы процесс обработки информации – это выполнение команд процессора над данными, лежащими в основной памяти. Все остальные операции – операции ввода-вывода.

Проектирование операций ввода – вывода самая сложная часть проектирования ОС, поскольку должна универсально работать с большим классом устройств.не мешать им работать в параллельном режиме.

Поэтому операции по вводу-выводу являются особыми операциями (привилегированными операциями), и могут выполняться только самой ОС. Для этого используют разграничение на супервизор и пользователей. Использование операция ввода-вывода пользователем «на прямую» запрещено и называет исключение, а управление передается супервизору через механизм прерываний.

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

Супервизор выполняет следующие действия:

Проверяет корректность запроса пользовательского запроса. Если запрос соответсвует спецификации он принимается, если нет – выдается исключение.

Инициирует операции ввода-вывода, передает управление соответствующему драйверу и в случае управления с использованием прерываний предоставляет процессор диспетчеру процессов с тем, чтобы передать управление первому процессу в очереди.

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

Передает сообщение об ошибке в центральную систему для обработки

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

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

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

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

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

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

 

Драйвера

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

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

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

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

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

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

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

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

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

Закрепление устройств

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

Называется spool – simultaneous peripheral operation on-line – имитацияработысустройствомврежиме On-Line).Его задача создать видимость параллельного асинхронного работы с устройством нескольких процессов.

Каждому устройству предоставляется виртуальный драйвер, вывод собирается в специальных файлах. Сервис управляющий процессов чтением и записью в спул файл – спуллер. (spool-readerspool-writer)

Каждая ос имеет свои таблицы ввода-вывода и их состав сильно зависит от ОС. В некоторых ОС это не таблицы а связанные списки. Такие системы могут поддерживать миллионы устройств ввода-вывода.

 



2018-07-06 520 Обсуждений (0)
Отображение портов ввода–вывода в адресном пространстве 0.00 из 5.00 0 оценок









Обсуждение в статье: Отображение портов ввода–вывода в адресном пространстве

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (520)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)