Компьютерная сеть дома


Драйверы внешних устройств


Глава 9 Драйверы внешних устройств
Глава 9. Драйверы внешних устройств Драйверы внешних устройств Функции драйверов Многоуровневые драйверы Загрузка драйверов Архитектура драйвера Введение в конеч...
Драйверы внешних устройств
Драйверы внешних устройств   Когда я на почте служил ямщиком . Ко мне постучался косматый геолог, И глядя на карту на белой стене, он усмехнулся мне. Г....
Асинхронный вводвывод
Асинхронный ввод-вывод В системах семейства Unix драйверы блочных устройств обязательно асинхронные. Кроме того, в современных версиях системы асинхронными драйверами являются драйверы...
Стратегическая функция и очередь запросов
Рисунок 10.7. Стратегическая функция и очередь запросов IRP содержит: код операции (чтение, запись или код SPFUN— специальная функция, подобная ioctl в системах семейства Unix);...
Index11
  Сервисы ядра, доступные драйверам Следует провести различие между системными вызовами и функциями ядра, доступными для драйверов. Наборы системных вызовов и драйверных серв...
Автоконфигурация
Автоконфигурация   — В моем поле зрения появляется новый объект. Возможно, ты шкаф? — Нет — Возможно ты стол? — Нет — Каков твой номер?...
Выделение памяти
Выделение памяти Алгоритмы выделения памяти, в том числе и пригодные для использования в ядре ОС, подробно обсуждались в главе 4. Кроме того, мы уже упомянули тот печальный факт, что в...
Ограничения для буферов ПДП
Рисунок 10.8. Ограничения для буферов ПДП Это является дополнительным доводом в пользу того, чтобы при данными с внешним устройством копировать их в системный буфер а использовать непос...
Таймеры
Таймеры Ядро обычно предоставляет два типа таймеров — часы реального времени, указывающие астрономическое время (драйверу это время обычно интересно только для сбора статистики) и собст...
Обмен данными с пользовательским процессом
Обмен данными с пользовательским процессом Мы уже упоминали, что общение с пользовательским процессом допустимо только в одном из возможных контекстов нити ядра, а именно в пользовател...
Сервисные функции
Сервисные функции Набор сервисных функций, доступных драйверу, обычно представляет собой подмножество стандартной библиотеки того языка высокого уровня, на котором обычно пишутся драйв...
Асинхронная модель вводавывода с точки зрения приложений
Асинхронная модель ввода-вывода с точки зрения приложений В разд. Синхронный ввод-вывод, обсуждая асинхронную модель драйвера, мы задались вопросом: должна ли задача, сформировав з...
Опережающее чтение
Рисунок 10.9. Опережающее чтение При записи, казалось бы, нет необходимости дожидаться физическою вершения операции. При этом мы получаем режим, известный как отложенная запись (lazy...
Дисковый кэш
Дисковый кэш Функции и принципы работы дискового кэша существенно отличаются от общих алгоритмов кэширования, обсуждавшихся в разд. Страничный обмен. Дело в том, что характер обращения...
Спулинг
Спулинг   Гигабайттебе в спул. Популярное ругательство Термин спулинг (spooling) не имеет общепринятого русского аналога. В соответствии с программистским ф...
Функции драйверов
Функции драйверов Прежде всего, драйвер должен иметь функции, вызываемые ядром при загрузке и выгрузке модуля и при подключении модуля к конкретным устройствам. Например, в Sun Solans...
Многоуровневые драйверы
Многоуровневые драйверы Массивное тело Сабляк-Паши выглядело необычно, словно под кожей у него была одежда, а на голове, под скальпом, тюрбан. М. Павич...
Драйверы целевых устройств SCSI и драйвер НВА
Рисунок 10.1. Драйверы целевых устройств SCSI и драйвер НВА Напротив, драйвер НВА напрямую не доступен прикладным программам (в отдельных случаях, впрочем, позволяют осуществлять над этим д...
Различные типы позиционных устройств ввода
Рисунок 10.2. Различные типы позиционных устройств ввода В этом случае также целесообразно реализовать четыре самостоятельных драйвера транспортных портов (тем более что к этим портам могут...
Модули STREAMS
Рисунок 10.3. Модули STREAMS Многоуровневые драйверы в OS/2 Рассмотрим еще один подход к организации многоуровневых драйверов на примере DMD (Device Manager Driver-драйвер-менеджер класс...
Взаимодействие между DMD и ADD
Рисунок 10.4. Взаимодействие между DMD и ADD в OS/2 (в качестве примера драйвера файловой системы приведен модуль JFS.IFS) В данном случае, запросы предыдущих трех драйверов исполняет ч...
Загрузка драйверов
Загрузка драйверов Чаще всего драйверы размещаются в адресном пространстве ядра системы, исполняются в высшем кольце защиты и имеют доступ для записи к сегментам данных пользовательских...
Index5
  Архитектура драйвера Типичный протокол работы с внешним устройством состоит из анализа запроса, передачи команды устройству, ожидания прерывания по завершении этой ко...
Введение в конечные автоматы
Введение в конечные автоматы Конечный автомат (в современной англоязычной литературе используется также более выразительное, на взгляд автора, обозначение, не имеющее хорошего русского...
Блоксхема драйвера
Рисунок 10.5. Блок-схема драйвера Анализ полной или сокращенной блок-схемы алгоритма методами теории графов, хотя и не может однозначно дать ответ на вопрос о его финитности, может оказ...
Развертывание циклов в графе состояния
Рисунок 10.6. Развертывание циклов в графе состояния С другой стороны, ряд даже довольно сложных алгоритмов естественным образом описывается автоматами с небольшим числом состояний, кот...
Архитектура драйвера
Архитектура драйвера Драйвер, таким образом, состоит из основной нити, обработчика прерывания, и, возможно, одной или нескольких высокоприоритетных нитей, создаваемых обработчиком. Все...
Запросы к драйверу
Запросы к драйверу Обработку запроса можно разделить на три фазы: предобработку, исполнение запроса и постобработку. Пользовательская программа запрашивает операцию, исполняя соответств...
Синхронный вводвывод
Синхронный ввод-вывод Самым простым механизмом вызова функций драйвера был бы косвенный вызов соответствующих процедур, составляющих тело драйвера, подобно тому, как это делается в MS D...








Начало    


Книжный магазин