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


Трехуровневые драйвера



2018-07-06 324 Обсуждений (0)
Трехуровневые драйвера 0.00 из 5.00 0 оценок




Первая таблица (список) содержит информацию обо всех устройствах ввода-вывода, подключенных к системе. (её называют - таблица оборудования). Каждый элемент таблицы UCB (unitcontrolblock)- блок управления устройством ввода-вывода. UCB содержит информацию об устройстве:

Тип устройства, его модель символьное имя и характеристики

Как устройство подключено (интерфейс и разъем).

Номер порта и адрес канала управления.

Указание на драйвер, который управляет устройством (адрес секции запуска, выполнения и завершения)

Используется ли буферезация при обмене, адрес буфера обмена,

Установка тайм-аута и счетчик тайм-аутов

Состояние устройства

Поле указателя для связи процессов, ожидающих устройство.

Важно UCB содержит дескриптор процесса, который использует устройство. Если оно свободно – дескриптор будет указывать на нуль.

Вторая таблица предназначена для реализации принципа виртуализации (на её основе организовано независимость устройства ввода – вывода от физики устройства). Поскольку ни программа, ни файловая система не должны зависеть от типа жесткого диска. Поэтому процессы используют не физическое, а логическое представление устройства. Супервизор через вторую таблицу сопоставляет логическое имя физическому, связывая устройства. Эта таблица называется таблицей описания виртуальных логических устройств. (DRT – devicereferencetable). Назначение её связь между виртуальными устройствами и реальными устройствами из первой таблицы. Во многих системах вторая таблица делится на общую, и по одной для каждого пользователя, что позволяет создать необходимые связи между устройствами.

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

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

Рассмотрим процесс управления устройством ввода – вывода

Запрос от программы поступает на супервизор, которые проверяет корректность запроса, Запрос перенаправляется супервизором, с помощью таблицы DRT на элемент UCB в таблице оборудования. Если устройство занято, запрос помещается в список задач, ожидающих устройство. Если устройство свободно, супервизор ввода-вывода определяет из UCB тип устройства и запускает препроцессор для для формирования последовательности управляющих данных устройству(3). Когда программа управления готова, супервизор передает её драйверу в секцию запуска(4). Драйвер инициирует операцию управления, обнуляет счетчик тайм-аута и возвращает управление супервизору (5). Супервизор ставит на процессор задачу. Когда устройство ввода-вывода отработает посланную команду, оно выставляет сигнал запроса на прерывание, по которому через таблицу прерываний управление передается в секцию продолжения драйвера. Получив новую команду, устройство начинает его обработку, а процессор занимается следующими процессами.

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

 

Контролер прерываний

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

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

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

Считчик команд (ProgramControl) хранится в определенном месте.

Все команды до той, на которую указывает счетчик выполнены.

Ни одна команда после счетчика не выполнялась

Состояние текущей команды известно.

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

Прерывания могут быть аппаратными и программными. ОС не различает их.

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

 

Концепция разработки ПОввода-вывода – независимость программа от устройств. Программа должна одинаково работать на любом носителе. Другая концепция – единообразие названий устройств. Следующий этап ПО ввода-вывода – обработка ошибок. Эта обработка должна происходить как можно ближе к устройству (в контролере), чтобы исправить её быстрее. Многие ошибку ввода –вывода – временные ошибки. Буферизация ввода-вывода. Пакет полученный по сети некуда деть пока он не будет развернут. Но до этого его нужно где-то хранить.

Выделенные устройства и устройства коллективного пользования.

Программный ввод-вывод Всю работу делает ЦП: Этапы печати строки- сначала собирает строку в буфер в пространстве пользователя.

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

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

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

 

 



2018-07-06 324 Обсуждений (0)
Трехуровневые драйвера 0.00 из 5.00 0 оценок









Обсуждение в статье: Трехуровневые драйвера

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

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

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



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

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

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

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

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

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



(0.008 сек.)