Менеджер файловой системы

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

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

- Гарантирование корректности данных, содержащихся в файле.

- Оптимизация производительности, как с точки зрения системы (пропускная способность), так и с точки зрения пользователя (время отклика).

- Поддержка ввода-вывода для различных типов устройств хранения информации.

- Минимизация или исключение возможных потерь или повреждений данных.

- Обеспечение стандартизированного набора подпрограмм интерфейса ввода-вывода.

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

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

1.Создавать, удалять, читать и изменять файлы.

2.Иметь контролируемый доступ к файлам других пользователей.

3.Управлять доступом к своим файлам.

3.Сохранность и защита файлов.

4.Реструктуризировать файлы таким способом, который наиболее подходит для решения стоящих перед ним задач.

5.Перемещать данные между файлами.

6.Резервировать и восстанавливать файлы в случае повреждения.

7.Иметь доступ к файлам по символьным именам.

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

Pиc. 12.1. Архитектура программного обеспечения файловой системы

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

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