ОС / 2. ОС - Управление устройствами
.pdf51
Управление устройствами в UNIX
Драйверы устройств – символьные и блочные.
Для символьных устройств – только символьные драйверы.
Для блочных устройств – блочные и символьные драйверы.
Псевдоустройства – например, системная память (адреса которой недоступны программам пользователя)
Таблицы драйверов в основной памяти, отдельно для символьных и блочных:
строки таблицы соответствуют конкретным драйверам;
столбцы соответствуют различным функциям драйвера.
клетки таблицы содержат адреса точек входа для функций
драйвера.
Операционные системы. Управление устройствами
52
Управление устройствами в UNIX
Наиболее важные функции драйверов:
открытие устройства;
закрытие устройства;
обработка аппаратного прерывания (ввод/вывод порции данных, если устройство готово);
опрос готовности устройства (по таймеру, если прерывания не используются);
чтение данных;
запись данных;
вызов блока стратегии (постановка запроса в очередь; возможно, обращение к кэшу);
выполнение специальных функций.
Операционные системы. Управление устройствами
53
Управление устройствами в UNIX
Интересная выдумка UNIX: устройства представлены как специальные файлы.
Для работы с устройствами всегда используются те же функции, что для работы с файлами, но указывается имя специального файла.
В отличие от Windows, эти имена хранятся в одном из каталогов файловой системы, как и имена обычных файлов.
В отличие от обычного файла, для специального файла хранятся два числа: старший и младший номер устройства.
Старший номер – это номер строки в таблице драйверов.
Младший номер может иметь различный смысл, например, номер физического диска.
Операционные системы. Управление устройствами