Головна

Системні таблиці драйверів пристроїв

  1.  IV. Загальні засади землекористування і землеустрою СРСР 1928 р
  2.  IV. Статистичні таблиці
  3.  Spooling і захоплення пристроїв
  4.  V. УПРАВЛІННЯ ДОДАТКОВИМИ ПРИСТРОЯМИ (4-Й КАНАЛ),
  5.  V. УПРАВЛІННЯ додатковий пристрій, підключений ДО ВИХОДУ 4-ГО КАНАЛУ
  6.  W. УПРАВЛІННЯ ДОДАТКОВИМИ ПРИСТРОЯМИ (5-Й КАНАЛ)
  7.  W. УПРАВЛІННЯ додатковий пристрій, підключений ДО ВИХОДУ 5-ГО КАНАЛУ

Для реєстрації драйверів в системі використовуються дві системні таблиці: таблиці блок-орієнтованих пристроїв - bdevsw, І таблиця байт-орієнтованих пристроїв - cdevsw. Відповідно, старший номер зберігає посилання на драйвер, що зберігається в одній з таблиць; тип таблиці визначається типом файлу пристроїв.

Кожен запис цих таблиць містить структуру спеціального формату, звану комутатором пристрої. Комутатор пристрої зберігає покажчики на всілякі точки входу (тобто реалізовані функції) до відповідного драйвер, або ж у відповідному записі таблиці замість зазначеної структури зберігається спеціальне посилання-заглушка на точку ядра.

Варто відзначити такі типові імена точок входу в драйвер:

- ?open (), ?close ();

- ?read (), ?write ();

- ?ioctl ();

- ?intr ()[R38].

Символ ? є абревіатурою імені пристрою: зазвичай в Unix-системах для іменування пристрої використовують Двосимвольні імена. Наприклад, lp - принтер, mt - магнітна стрічка, і т.п.

У загальному випадку система специфицирует найбільш повний набір функцій, який може надати драйвер користувачеві. Якщо будь-яка функція відсутня, то на її місці в комутаторі може стояти заглушка. Заглушки можуть бути двох типів: заглушка типу nulldev (), Яка при зверненні відразу повертає управління, і заглушка типу nodev (), Яка при зверненні повертає управління з кодом помилки. Наприклад, для таймера швидше за все будуть відсутні функції читання і запису, причому при спробі читання або запису система повинна «лайнутися» (тобто заглушка типу nodev ()).

Деякі з перерахованих точок входу є спеціалізованими. За допомогою функції ?ioctl () можна виробляти різного роду настройки і управління драйвером. функція ?intr () викликається при надходженні переривання, асоційованого з цим пристроєм [R39].

Традиційно частина функцій драйверів може бути реалізовано синхронним способом, а інша частина - асинхронним способом. Відповідно, синхронна частина драйвера називається top half, А асинхронна - bottom half.




 Управління оперативною пам'яттю |  Одиночне безперервне розподіл |  Розподіл непереміщуваними розділами |  Розподіл переміщуються розділами |  сторінкове розподіл |  сегментний розподіл |  Сегментно-сторінкове розподіл |  Архітектура організації управління зовнішніми пристроями |  Програмне управління зовнішніми пристроями |  RAID-системи. рівні RAID |

© um.co.ua - учбові матеріали та реферати