Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л. Клопа.docx
Скачиваний:
3
Добавлен:
26.09.2019
Размер:
53.22 Кб
Скачать

Драйверы клавиатуры

IDI

Ide контроллер

Ide устройства

Контроллер

Клавиатура

Схема представляет собой принцип уровневого построения системы ввода/вывода для ОС.

1 уровень: в аппаратное обеспечение входят сами устройства, выполняющие операции и их контроллеры, которые служат для организации совместной работы устройств и вычислительной системы.

2 уровень. Драйверы устройств ввода/вывода обеспечивают интерфейс между аппаратным обеспечением и уровнем базовой подсистемы ввода/вывода, кот обеспечивает интерфейс и обеспечением и уровнем базой системой ввода/вывода, который представляет механизм взаимодействия между драйверами и программной частью вычислительной системы.

Систематизация внешних устройств

Система типов устройств является не полной и нестрого выдержанной. Обычно устройства принято разделять по типу интерфейса на:

  1. Символьные – модем, клава

  2. Блочные – магнит, оптический привод

  3. Сетевые – сетевые адаптеры, видеокарты, дисплеи

Такое деление является условным. В одних ОС сетевые устройства могут не выделяться в отдельную группу, в другие отдельные группы составляют видеоустройства и звуковые. Некоторые группы могут разбиваться на подгруппы.

Рассмотрим блочные и символьные устройства.

Символьные

Блочные

Передают по 1 байту

Передают информацию блоками (магнитные и оптические диски)

Устройства ввода/вывода информации, которые генерируют входные данные (мышь, клава, джостик)

Устройства вывода информации, у которых данные выводятся в виде линейного потока (принтер, звуковые карты)

Символьные устройства могут ввести и вывести данные

Для блочных устройств характерна операция чтения информации, а также для устройств прямого доступа, т.е. операции поиска требуемого поиска информации

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

Помимо функции read, write, geek(поискать) (характерные для блочных устройств), get(взять) и put(положить) (для символьных устройств)в состав интерфейса включены следующие дополнительные функции:

  1. Функция инициализации open

  2. Функция временного завершения работы с устройством Cloze

  3. Функция опроса состояния устройств poll

  4. Функция остановки драйвера, который вызывается для остановки ОС или выгрузки драйвера из памяти halt

Существует еще ряд действий выполнение которых возложено на драйвер.

Функции базовой подсистемы

Базовая система ввода/вывода служит посредником между процессами вычислительной системы и набором драйверов.

Системные вызовы для выполнения операции ввода/вывода вызова функции необходимого драйвера устройств.

Функции базовой подсистемы не сводятся к выполнению только действий трансляции общего системного вызова в обращении к частной функции драйвера.

Базовая подсистема предоставляет вычислительной системе поддержку блокирующих системных вызовов, буферизацию и кэширование входных и выходных данных осуществляет spooling и монопольный захват внешних устройств, обработку ошибок и прерываний при операции ввода/вывода.

Планирование запросов на последовательное этих операций.

Блокирующие, не блокирующие и асинхронные системные вызовы.

Все системные вызовы связаны с операцией ввода/вывода. Можно разбить на 3 группы по способам реализации взаимодействия процесса и устройства ввода/вывода:

  1. Блокирующиеся системные вызовы. Применение приводит к блокировке инициирующего его процесса, т.е.процесс переводится ОС из состояния исполнения в состояние ожидания. После завершения всех операций ввода/вывода, предписанных системным вызовом, ОС переводит процесс из состояния ожидания – готовность. После того как процесс будет снова выбран для исполнения, в нем происходит окончательный возврат из системного вызова. Происходит это в случае, когда процессу необходимо получать от устройства делово определенное количества данных, без которых невозможно выполнение работы процессора далее.

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

  3. Асинхронные системные вызовы. Процесс, использующий данный вызов никогда в нем не блокируется, инициирует(вызывает) выполнение необходимых операций ввода/вывода и немедленно возвращается, процесс продолжает свою деятельность. Об окончании завершении операций ввода/вывода ОС в последствии информирует процесс изменением значений передачи ему сигналов или сообщений.

Разница между не блокирующим и асинхронным вызовами.

Не блокирующий системный вызов для выполнения операции reed вернется немедленно, но может прочитать запрошенной количество байтов, часть их или вообще ничего. Асинхронный вернется немедленно, но требуемое количество байтов рано или поздно будет прочитано в полном объеме.