![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Связывание файлов. Структура файловой системы с возможностью связывания файла с новым именем
Иерархическая организация, положенная в основу древовидной структуры файловой современных ОС, не предусматривает выражения отношений, в которых потомки связываются более чем с одним предком. Такая негибкость частично устраняется возможностью реализации связывания файлов или организации линков (link).
Простейший способ реализовать связывание файла – просто дублировать информацию о нем в обеих директориях. Но, может возникнуть проблема совместимости в случае, если владельцы этих директорий попытаются независимо друг от друга изменить содержимое файла. Она может быть решена двумя способами. Первый – так называемая жесткая связь (hard link). Если блоки данных файла перечислены не в директории, а в небольшой структуре данных (например, в индексном узле), связанной собственно с файлом, то второй пользователь может связаться непосредственно с этой, уже существующей структурой. Альтернативное решение – создание нового файла, который содержит путь к связываемому файлу. Такой подход называется символической линковкой (soft или symbolic link). При этом в соответствующем каталоге создается элемент, в котором имени связи сопоставляется некоторое имя файла. Для символической связи может создаваться отдельный индексный узел и даже заводиться отдельный блок данных для хранения потенциально длинного имени файла. Каждый методов имеет свои минусы. В случае жесткой связи возникает необходимость поддержки счетчика ссылок на файл для корректной реализации операции удаления файла. Например, в Unix. Удаление файла одним из польз-ей уменьшает количество ссылок на файл на 1. Реальное удаление происходит, когда число ссылок становится равным 0. В случае символической линковки такая проблема не возникает, так как только реальный владелец имеет ссылку на индексный узел файла Проблема организации символической связи – потенциальное снижение скорости доступа к файлу. Файл линка хранит путь к файлу, содержащий список вложенных директорий, для прохождения по которому необходимо осуществить несколько обращений к диску. Символический линк имеет то преимущество, что он может использоваться для организации удобного доступа к файлам удаленных компьютеров, если, например, добавить к пути сетевой адрес удаленной машины. Циклический граф – структура более гибкая, нежели простое дерево, но работа с ней требует большой аккуратности. Т.к. к файлу существует несколько путей, программа поиска файла может найти его на диске несколько раз. Простейшее практическое решение данной проблемы – ограничить число директорий при поиске. Полное устранение циклов при поиске – довольно трудоемкая процедура, выполняемая специальными утилитами и связанная с многократной трассировкой директорий файловой системы.
![]() |