На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 6 / Когда использовать драйверы устройств? Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Когда использовать драйверы устройств?

При каких условиях некоторую функцию следует удалить из программы и перенести в драйвер? Основное правило состоит в том, что если какая-либо функция выполняет ввод/вывод на на физическом уровне (т.е. работая непосредственно с аппаратурой), то эта функция - прекрасный кандидат для переноса в драйвер. По самой природе семейства микропроцессоров 80x86 такие функции обычно содержат команды IN и/или OUT (включая INS или OUTS). Если система поддерживает ввод/вывод, отображенный на память, доступ к абсолютным адресам памяти также может служить индикатором ввода/вывода на физическом уровне (чтение и запись векторов прерываний тоже является доступом к абсолютным адресам, но, конечно, предпочтительнее использовать функции MS-DOS "Получить вектор прерывания" и "Установить вектор прерывания", чем использовать для этих же целей драйвер).


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


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz