Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие по дисциплине ОССиО.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

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

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

Типичными функциями для независимого от устройств слоя ОС являются:

  • обеспечение общего интерфейса к драйверам устройств;

  • именование устройств;

  • защита устройств;

  • обеспечение независимого размера блока;

  • буферизация;

  • распределение памяти на блок-ориентированных устройствах;

  • распределение и освобождение выделенных устройств;

  • уведомление об ошибках.

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

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

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

Другой категорией программного обеспечения ввода/вывода является подсистема спулинга (spooling). Спулинг – это способ работы с выделенными устройствами в мультипрограммной системе (способ применения буферной памяти). Рассмотрим типичное устройство, требующее спулинга – принтер. Создается специальный процесс – монитор, который получает исключительные права на использование этого устройства. Также создается специальный каталог, называемый каталогом спулинга. Для того, чтобы напечатать файл, пользовательский процесс помещает выводимую информацию в этот файл и помещает его в каталог спулинга. Процесс-монитор по очереди распечатывает все файлы, содержащиеся в каталоге спулинга.

2.4. Файловая система

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

В широком смысле понятие «файловая система» включает:

  • совокупность всех файлов на диске;

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

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

Перечень существующих файловых систем: FAT, FAT32, VFAT, HPFS, NTFS, EFS, AFS, DFS, EXT2FS, System V, CDFS и т.д.