Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000377.doc
Скачиваний:
29
Добавлен:
30.04.2022
Размер:
2.52 Mб
Скачать

ГОУВПО «Воронежский государственный

технический университет»

А.Ю. Савинков

ПОДСИСТЕМА ВВОДА-ВЫВОДА В ОПЕРАЦИОННЫХ СИСТЕМАХ: ПРИНЦИПЫ ОРГАНИЗАЦИИ И РАБОТЫ

Утверждено Редакционно-издательским советом

университета в качестве учебного пособия

Воронеж 2010

УДК 004.451.001.25

Савинков А.Ю. Подсистема ввода-вывода в операционных системах: принципы организации и работы: учеб. пособие / А.Ю. Савинков. Воронеж: ГОУВПО «Воронежский государственный технический университет», 2010. 103 с.

В учебном пособии рассматриваются общие принципы организации и работы подсистемы ввода-вывода современных операционных систем, а также описываются отдельные аспекты реализации базовых элементов подсистемы ввода-вывода операционных систем UNIX и Windows.

Издание соответствует требованиям Государственного образовательного стандарта высшего профессионального образования по направлению 090100 “Информационная безопасность”, специальностям 09102 “Компьютерная безопасность” и 090106 “Информационная безопасность телекоммуникационных систем”, дисциплинам «Безопасность операционных систем» и «Операционные системы».

Издание предназначено студентам очной формы обучения.

Учебное пособие подготовлено в электронном виде в текстовом редакторе MS WORD и содержится в файле Ввод-Вывод.doc.

Табл. 1. Ил. 24. Библиогр.: 9 назв.

Рецензенты: кафедра радиофизики физического факультета Воронежского государственного университета (зав. кафедрой Трифонов А.П.); д-р техн. наук, проф. Н.Н. Толстых

© Савинков А.Ю., 2010

© Оформление. ГОУВПО «Воронежский государственный технический университет», 2010

Введение

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

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

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

  1. Подсистема ввода-вывода: общие принципы построения и работы

1.1. Взаимодействие процессора с внешними устройствами

Процессор взаимодействует с внешними устройствами через регистры этих устройств, в которые он может записывать команды управления устройством и передаваемые данные или считывать состояние устройства и принимаемые данные. При подключении внешнего устройства к компьютеру, его регистры отображаются на адресное пространство памяти или ввода-вывода. В первом случае, для обращения к регистру устройства процессор должен просто записать или считать содержимое ячейки памяти, во втором случае требуется использовать специальные команды чтения или записи портов ввода-вывода, которые обычно являются привилегированными командами и недоступны в пользовательском режиме, например, команды out и in в процессорах семейства x86.

1.2. Прямой доступ к памяти

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

Для повышения производительности контроллеры внешних устройств реализуются таким образом, чтобы контроллер устройства, приняв запрос от процессора, мог бы сам, без участия процессора, управлять устройством. Поэтому процессор, передав запрос контроллеру внешнего устройства, переходит к выполнению другого процесса из очереди готовых к выполнению процессов. Внешнее устройство, завершив операцию, вырабатывает прерывание – прерывание по завершению ввода-вывода, которое сигнализирует процессу о завершении запрошенной операции ввода-вывода и готовности устройства к выполнению новых запросов.

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

Идея прямого доступа к памяти состоит в следующем. Процессор выделяет в ОЗУ область памяти и указывает в запросе к внешнему устройству адрес этой области и ее размер. Внешнее устройство получает прямой доступ к памяти и непосредственно использует данные в ней. В режиме прямого доступа к памяти эффективно реализуется передача больших объемов данных без участия центрального процессора, который в это время может заниматься выполнением другого процесса.