Операционные системы. А. Ю. Кручинин
Чтение книги онлайн.

Читать онлайн книгу Операционные системы - А. Ю. Кручинин страница 4

СКАЧАТЬ уровня детализации. Поэтому в функции контроллера входит представление простого интерфейса для операционной системы.

      Следующей частью является само устройство. Устройства имеют достаточно простые интерфейсы, потому что их возможности невелики и их нужно привести к единому стандарту. Единый стандарт необходим, например чтобы каждый IDE контроллер диска (Integrated Drive Electronics) мог управлять любым IDE диском. IDE интерфейс является стандартным для дисков на компьютерах с процессором Pentium, а также на других компьютерах. Так как настоящий интерфейс устройства скрыт с помощью контроллера, то операционная система видит только интерфейс контроллера, который может сильно отличаться от интерфейса самого устройства.

      Поскольку все виды контроллеров отличаются, то для них требуется разное программное обеспечение. Программа, которая общается с контроллером, – драйвер устройства. Каждый производитель контроллеров должен поставлять драйверы для поддерживаемых операционных систем. Для использования драйвера его нужно установить в операционную систему так, чтобы он мог работать в режиме ядра. Есть три способа установки драйвера в ядро [14]:

      • заново скомпоновать ядро вместе с новым драйвером и затем перезагрузить операционную систему (так работает множество операционных систем Unix);

      • создать запись во входящем в операционную систему файле, говорящую о том, что требуется драйвер и затем перезагрузить систему; во время начальной загрузки операционная система сама находит нужные драйверы и загружает их (так работает Windows);

      • операционная система может принимать новые драйверы, не прерывая работы, и оперативно устанавливать их, не нуждаясь в перезагрузке. Этот способ становится все более и более распространенным. Такие устройства как шины USB, IEEE 1394 всегда нуждаются в динамически загружаемых драйверах.

      Ввод-вывод данных можно осуществлять тремя различными способами [14].

      • Простейший способ: пользовательская программа выдает системный запрос, который ядро транслирует в вызов процедуры, соответствующей драйверу, затем драйвер начинает процесс ввода-вывода. В этом время он выполняет короткий программный цикл, постоянно опрашивая устройство, с которым он работает. При завершении операций ввода-вывода драйвер помещает данные туда, куда требуется, и возвращается в исходное состояние. Затем операционная система возвращает управление программе, осуществлявшей вызов. Этот метод – ожидание готовности (активное ожидание). Он имеет один недостаток: процессор должен опрашивать устройство, пока оно не завершит работу.

      • Драйвер запускает устройство и просит его выдать прерывания по окончании ввода-вывода; после этого драйвер возвращает управление операционной системе, и она начинает выполнять другие задания. Когда контроллер обнаруживает окончание передачи данных, он генерирует прерывание о завершении операции. Процесс ввода-вывода, использующий прерывания, состоит из четырех СКАЧАТЬ