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

Подсистема ввода-вывода ядра

Планирование ввода-вывода обычно реализовано как среднесрочное. Как известно, с каждым устройством связывают очередь ожидания, во время выполнения блокировочного вызова или поток помещают в очередь для соответствующего устройства, из которой его обычно высвобождает обработчик прерывания. Разным устройствам могут присваивать разные приоритеты.

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

В подсистеме ввода-вывода во время работы возникают разные ошибки, которые можно отнести к нескольким категориям:

  • Ошибки в программном коде ввода-вывода (доступ к отсутствующему устройству или недопустимые действия с устройством и т.п.).

  • Ошибки, вызванные аппаратными проблемами.

В программном обеспечении передача подробных сведений об ошибке является главной задачей подсистемы ввода-вывода.

Ввод-вывод в режиме пользователя

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

Однако синхронный ввод-вывод подходит не для всех приложений. Он не подходит для таких категорий программ:

  • серверов, обслуживающих многих клиентов;

  • мультимедийних приложений.

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

СРС-5

Интерфейс виртуальной файловой системы vfs

Основная цель VFS - это обеспечение возможности работы ОС с максимально широким набором файловых систем.

Файловые системы, поддерживаемые VFS, могут быть разделены на три основные категории.

  • Дисковые – это файловые системамы в их традиционном понимании. Они могут иметь любую внутреннюю структуру.

  • Сетевые - реализуют прозрачный доступ к файлам на других компьютерах через сеть.

  • Специальные или виртуальные отображают в виде файловой системы то, что на­ в самом деле файловой системой не является. Они не руководят дисковым пространством ни ло­кально, ни отдаленно.

Во время разработки VFS были широко использованные принципы объектной ориентации. Эта инфраструктура состоит из двух основных групп элементов: набора правил, которым должны подчиняться файловые объекты, и уровня программного обеспечения для управления этими объектами. Базовая архитектура VFS определяет три основных объектных типа.

  1. Объект индексного дескриптора - описывает набор атри­бутов и методов, с помощью которых отображают файл на уровне файловой сис­темы.

  2. Объект открытого файла отображает открытый файл на уровне процесса.

  3. Объект файловой системы отображает всю файловую систему.

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