Драйверы устройств
Программа управления устройством ввода-вывода, подключённым к компьютеру, называется драйвером устройства. Обычно драйвер пишется производителем и распространяется вместе с устройством. Каждый драйвер устройства поддерживает один тип устройства или, максимум, класс близких устройств. Например, драйвер дисков может поддерживать различные диски, отличающиеся размерами и скоростями. Поскольку для каждой ОС требуются специальные драйверы, производители устройств обычно поставляют драйверы для нескольких наиболее популярных операционных систем. Производители ОС также стараются включить в поставку ОС драйвера наиболее распространённых (стандартных) устройств.
Чтобы получить доступ к аппаратной части устройства, т.е. к регистрам контроллера, драйвер устройства должен быть частью ядра операционной системы. Хотя возможно создать и драйвер, работающий в пространстве пользователя, современные операционные системы предполагают работу драйверов в ядре (рис. 5.3).
Рис. 5.11. Программно-аппаратное взаимодействие
при управлении устройствами ввода-вывода
Операционная система обычно классифицирует драйверы по нескольким категориям в соответствии с типами обслуживаемых ими устройств. В большинстве операционных систем определены два стандартных интерфейса, один из которых должен поддерживать все блочные драйверы (например, диски, содержащие блоки данных, к которым возможна независимая адресация), а второй – все символьные драйверы (клавиатуры и принтеры, формирующие или принимающие поток символов).
Некоторые ОС представляют собой двоичную программу, содержащую в себе все необходимые драйверы. Такая схема в течение многих лет была нормой для ОС UNIX, так как они предназначались для работы в компьютерных центрах, где устройства ввода-вывода менялись редко. При добавлении нового устройства системный администратор просто перекомпилировал ядро с новым драйвером, получая новый двоичный модуль.
С появлением персональных компьютеров с их огромным разнообразием устройств ввода-вывода такая модель неэффективна. Далеко не все пользователи могут самостоятельно перекомпилировать и собрать ядро. Поэтому операционные системы, начиная с MS-DOS, перешли к модели динамической подгрузки драйверов.
Драйвер устройства выполняет следующие функции:
инициализирует устройство;
управляет энергопотреблением устройства;
обрабатывает запросы программного обеспечения (чтение/запись), возвращает вызывающей программе информацию о завершении операции;
проверяет входные параметры (если они не удовлетворяют определённым критериям, драйвер возвращает ошибку. Безошибочные абстрактные параметры преобразуются в конкретные. Например, дисковый драйвер может преобразовывать линейный номер блока в номера головки, дорожки и секторы);
проверяет использование устройства в данный момент. (Если устройство занято, запрос может быть поставлен в очередь. Если устройство свободно, проверяется его состояние. Возможно, требуется подготовить устройство, прежде чем начнётся перенос данных. Как только устройство готово, может начинаться собственно управление устройством.)
Управление устройством подразумевает выдачу ему серии команд. После того как драйвер передал все команды контроллеру, ситуация может развиваться по двум сценариям. В одних случаях драйвер устройства должен ждать, пока контроллер не выполнит для него определённую работу, поэтому он блокируется до тех пор, пока прерывание от устройства его не разблокирует. В других случаях операция завершается без задержек и драйверу не нужно блокироваться.
- Информатика
- Режим доступа к электронному аналогу печатного издания: http://www.Libdb.Sssu.Ru
- Содержание
- Предисловие
- Основные понятия информатики
- Понятие информации
- Свойства информации
- Понятие количества информации
- Предмет и задачи информатики
- Информационное общество
- Вопросы и тестовые задания для самоконтроля
- Системы счисления и представление информации в эвм
- Представление (кодирование) данных
- Понятие об основных системах счисления
- Перевод чисел из одной системы счисления в другую
- Представление чисел в различных системах счисления
- Двоичная арифметика
- Арифметические действия над двоичными числами
- Представление чисел в эвм
- Примеры представления целых чисел в шестнадцатиразрядных двоичных кодах
- Представление десятичных чисел в четырёхразрядном коде Грея
- Кодирование информации в эвм
- Базовая таблица кодировки ascii
- Вопросы и тестовые задания для самоконтроля
- Логические основы построения эвм
- Основы алгебры логики
- Операции сравнения
- Примеры операторов сравнения в разных языках программирования
- Логические операции
- Основные логические операторы
- Результаты, возвращаемые логическими операциями
- Основы элементной базы эвм
- Условные обозначения и диаграммы работы логических элементов
- Rs-триггер
- Элементы теории множеств
- Элементы теории графов
- Типы вершин блок-схем алгоритмов
- Вопросы и тестовые задания для самоконтроля
- Технические средства реализации информационных процессов
- История развития эвм
- Классификация эвм
- Архитектура эвм
- Состав персонального компьютера
- Внешние устройства
- Вопросы и тестовые задания для самоконтроля
- Системное программное обеспечение эвм
- Базовые понятия ос
- Классификация операционных систем
- Файловая структура эвм
- Примеры общепринятых расширений для популярных типов файлов
- Файловые системы Microsoft Windows
- Драйверы устройств
- Служебные программы
- Обзор операционных систем unix и Linux
- Обзор операционных систем Windows
- Вопросы и тестовые задания для самоконтроля
- Прикладное и инструментальное программное обеспечение
- Прикладное программное обеспечение общего назначения
- Прикладное программное обеспечение специального назначения
- Инструментальное по
- Нумерация версий программ
- Правовой статус программ
- Текстовые редакторы и процессоры
- Программы подготовки презентаций
- Вопросы и тестовые задания для самоконтроля
- Электронные таблицы
- Основные понятия электронных таблиц Excel
- Ввод, редактирование и форматирование данных
- Вычисления в таблицах
- Диаграммы
- Вопросы и тестовые задания для самоконтроля
- Модели решения функциональных и вычислительных задач
- Моделирование как метод познания
- Классификация моделей
- Классификация видов моделей
- Компьютерное моделирование
- Информационные модели
- Примеры информационных моделей
- Базы данных
- Искусственный интеллект
- Вопросы и тестовые задания для самоконтроля
- Основы алгоритмизации
- Основные этапы компьютерного решения задач
- Понятие алгоритма и его свойства
- Исполнители алгоритмов
- Способы описания алгоритмов
- Обозначение и функциональное назначение наиболее часто употребляемых символов в схемах данных и программ
- Базовые управляющие структуры алгоритмов (основные алгоритмические конструкции)
- 2) Альтернатива (ветвление);
- 3) Итерация1 (цикл).
- Алгоритмы линейной структуры
- Алгоритмы ветвящейся структуры
- Алгоритмы циклической структуры
- Способы комбинации базовых управляющих структур (основных алгоритмических конструкций)
- Примеры комбинации основных алгоритмических структур
- Вопросы и тестовые задания для самоконтроля
- Основы программирования на языках высокого уровня
- Основные понятия языков программирования
- Примеры использования имён
- Операторы в арифметических и логических выражениях
- Типы данных и операторы описания переменных
- Некоторые базовые типы переменных
- Описание переменных в разных языках
- Синтаксис операторов описания сложных типов переменных
- Основные операторы
- Синтаксис некоторыхоператоров
- Вопросы и тестовые задания для самоконтроля
- Основные операторы языка visual basic for applications
- Оператор присваивания
- Примеры использования оператора присваивания
- Условный операторIf … then
- Оператор выбора варианта*
- Операторы цикла
- Оператор циклаFor … next
- Математические функции
- Краткие сведения о математических функциях в vba и Паскале
- Функции обработки строк*
- Краткие сведения о строковых функциях
- Функции преобразования данных
- Краткие сведения о функциях преобразования данных
- Вопросы и тестовые задания для самоконтроля
- Технологии программирования
- Концепция программирования
- Характеристика трудоёмкости разработки программ
- Структурное и модульное программирование
- Рекурсивные алгоритмы *
- Объектно-ориентированное программирование
- Вопросы и тестовые задания для самоконтроля
- Языки и системы программирования
- Уровни языков программирования
- Системы программирования
- Классификация языков программирования
- Процедурные языки программирования
- Объектно-ориентированные языки
- Декларативные языки
- Языки программирования для баз данных и компьютерных сетей
- Языки моделирования *
- Вопросы и тестовые задания для самоконтроля
- Основные понятия компьютерной графики
- Виды компьютерной графики
- Графические форматы
- Цветовые модели *
- Программные средства создания растровых изображений
- Программы векторной графики
- Программные средства обработки трехмерной графики
- Вопросы и тестовые задания для самоконтроля
- Основные понятия баз данных
- Задачи, решаемые с помощью баз данных
- Классификация бд
- Реляционная модель данных
- Свойства полей базы данных
- Типы данных
- Безопасность и объекты баз данных
- Проектирование баз данных *
- Вопросы и тестовые задания для самоконтроля
- Средства автоматизации проектных, опытно-конструкторских и научно-исследовательских работ.
- Задачи, решаемые с помощью систем автоматического проектирования
- Программные продукты MathWorks
- Сапр в легкой промышленности
- Вопросы и тестовые задания для самоконтроля
- Основы компьютерных сетей
- Основы передачи данных
- Назначение и классификация сетей
- Сетевая модель osi/iso
- Сетевое оборудование
- Основные стандарты и протоколы
- Т Вопросы и тестовые задания для самоконтроля
- Глобальная сеть интернет
- Подключение к Интернет
- Службы Интернет
- Поиск информации в Интернете
- Наиболее известные и популярные поисковые системы
- Поиск с использованием языка запросов *
- Логические операторы
- Вопросы и тестовые задания для самоконтроля
- Основы информационной безопасности
- Угрозы информационной безопасности
- Методы и средства защиты информации
- Правовые основы информационной безопасности
- Ответственность за преступления в области информационных технологий
- Криптографические механизмы защиты информации
- Компьютерные вирусы и вредоносные программы
- Методы защиты от вирусов
- Вопросы и тестовые задания для самоконтроля
- Библиографический список
- Учебное издание информатика Учебное пособие