Систему управления файлами составляет программное обеспечение, предоставляющее сервисные функции при работе пользователей и приложений с файлами. Обычно единственным способом работы с файлами является использование системы управления файлами. Ее применение позволяет избавиться от необходимости разработки специальных программ работы с файлами для каждого отдельного приложения, а также обеспечивает систему средствами управления ее наиболее важными компонентами. Задачи системы управления файлами:
- Соответствие требованиям управления данными и требованиям со стороны пользователей, включающим возможность хранения данных и выполнения рассмотренных ранее операций с ними.
- Гарантирование корректности данных, содержащихся в файле.
- Оптимизация производительности, как с точки зрения системы (пропускная способность), так и с точки зрения пользователя (время отклика).
- Поддержка ввода-вывода для различных типов устройств хранения информации.
- Минимизация или исключение возможных потерь или повреждений данных.
- Обеспечение стандартизированного набора подпрограмм интерфейса ввода-вывода.
- Обеспечение поддержки коллективного использования несколькими пользователями многопользовательской системы.
Что касается первого пункта — соответствия пользовательским требованиям, — то спектр этих требований зависит от разнообразия приложений и от среды, в которой используется компьютерная система. Ниже приведен минимальный набор требований для диалоговой системы общего назначения. Каждый пользователь должен иметь следующие возможности:
1.Создавать, удалять, читать и изменять файлы.
2.Иметь контролируемый доступ к файлам других пользователей.
3.Управлять доступом к своим файлам.
3.Сохранность и защита файлов.
4.Реструктуризировать файлы таким способом, который наиболее подходит для решения стоящих перед ним задач.
5.Перемещать данные между файлами.
6.Резервировать и восстанавливать файлы в случае повреждения.
7.Иметь доступ к файлам по символьным именам.
Все эти функции должны быть осуществлены в менеджерах файлов систем управления файлами. Чтобы хоть как-то представить себе спектр действий при управлении файлами, можно обратиться к рис. 12.1, где представлена типичная схема организации программного обеспечения. Естественно, что различные системы организованы по-разному, однако приведенная организация типична. На нижнем уровне драйверы устройств непосредственно связаны с периферийными устройствами или их контроллерами либо каналами. Драйвер устройства отвечает за начальные операции ввода-вывода устройства и за обработку завершения запроса ввода-вывода. При файловых операциях контролируемыми устройствами являются дисковод и накопитель на магнитной ленте. Драйверы устройств обычно рассматриваются как часть операционной системы.
Pиc. 12.1. Архитектура программного обеспечения файловой системы
Пользователи и прикладные программы взаимодействуют с файловой системой посредством команд для создания и удаления файлов, а также для выполнения операций над ними. Перед выполнением любой операции файловая система должна идентифицировать выбранный файл и определить его местоположение. Это требует использования каталогов определенного типа, которые служат для описания местоположения файлов и их характеристик. Кроме того, большинство систем с совместным использованием включают управление доступом пользователей (только авторизованным пользователям разрешен доступ к определенным файлам определенными способами). Базовые операции, которые могут быть выполнены пользователем или приложением над файлами, выполняются на уровне записей. С точки зрения пользователя или прикладной программы, файл имеет некоторую последовательную структуру, организующую записи (например, записи о персонале хранятся в алфавит-, ном порядке). Поэтому для преобразования команд пользователя в конкретные команды управления файлом должен использоваться метод доступа, соответствующий структуре данного файла.
В то время как пользователи и приложения оперируют с записями, низкоуровневый ввод-вывод выполняется блоками. Следовательно, записи файла требуется сблокировать для вывода и разблокировать после ввода. Для поддержки блочного ввода-вывода файлов необходимо несколько функций. Сохранение на внешних запоминающих устройствах должно быть управляемым. К функциям управления относятся распределение файлов по свободным блокам при сохранении на внешних устройствах и управление свободной памятью таким образом, чтобы знать, какие блоки являются доступными для создания новых файлов и наращивания существующих. Кроме того, индивидуальные запросы блочного ввода-вывода должны планироваться. И распределение файлов, и дисковое планирование тесно связаны с оптимизацией производительности системы. Поэтому, как и следовало ожидать, эти функции необходимо рассматривать вместе. Более того, оптимизация будет зависеть от структуры файлов и схем доступа. Соответственно, разработка оптимальной системы управления файлами с точки зрения эффективности является чрезвычайно сложной задачей.