Файловые системы.
Функции файловых систем и иерархия данных. Общая структура
файловой системы управления внешней памятью. Кооперация процессов при работе с
файлами. Файловые системы FAT,FAT32,NTFS.
·
Под файлом обычно понимают именованный набор данных,
организованных в виде совокупности записей одинаковой структуры. Для
управления этими данными создаются соответствующие файловые системы.
Файловая система предоставляет
возможность иметь дело с логическим уровнем структуры данных и операций, выполняемых
над данными в процессе их обработки. Именно файловая система определяет способ
организации данных на диске или на каком-нибудь ином носителе. Специальное
системное программное обеспечение, реализующее работу с файлами по принятым
спецификациям файловой системы, часто называют системой управления файлами.
Именно системы управления файлами отвечают за создание, уничтожение,
организацию, чтение, запись, модификацию и перемещение файловой информации и
т.д.
Благодаря системам управления файлами пользователям
предоставляются следующие возможности:
1.
Создание, удаление, переименование (и другие
операции) именованных наборов данных (файлов) из своих программ или
посредством специальных управляющих программ, реализующих функции интерфейса
пользователя с его данными и активно использующих систему управления файлами;
2.
Работа с недисковыми периферийными устройствами как
с файлами;
3.
Обмен данными между файлами, между устройствами,
между файлом и устройством (и наоборот);
4.
Работа с файлами путем обращений к программным
модулям системы управления файлами (часть api ориентирована именно на работу с
файлами);
5.
Защита файлов от несанкционированного доступа.
Очевидно, что система управления файлами, будучи компонентом
операционной системы, не является независимой от нее, поскольку активно
использует соответствующие вызовы api.
При работе с файлами желательно ввести механизмы
структурирования. Проще всего организовать
иерархические отношения. Для этого достаточно ввести понятие каталога. Каталог
содержит информацию о данных, организованных в виде файлов. Другими словами, в
каталоге должны содержаться дескрипторы файлов. Файл-каталог должен иметь специальное
системное значение; система управления файлами должна его выделять на фоне
обычных файлов. Файл-каталог часто называют подкаталогом (subdirectory). Если
файл-каталог содержит информацию о других файлах, то поскольку среди них также
могут быть файлы-каталоги, мы получаем возможность строить почти ничем не
ограниченную иерархию.
Общая
структура файловой системы
Система хранения данных на дисках
может быть структурирована следующим образом (см. рис. 12.1).
Нижний уровень -
оборудование. Это в первую очередь магнитные диски с
подвижными головками - основные устройства внешней памяти,
представляющие собой пакеты магнитных пластин (поверхностей), между которыми на
одном рычаге двигается пакет магнитных головок. Диски могут быть разбиты на
блоки фиксированного размера и можно непосредственно получить доступ к
любому блоку (организовать прямой доступ к
файлам).
Непосредственно с устройствами
(дисками) взаимодействует часть ОС, называемая системой ввода-вывода.
Система ввода-вывода предоставляет в распоряжение более высокоуровневого
компонента ОС - файловой системы - используемое дисковое пространство в
виде непрерывной последовательности блоков фиксированного размера.
В структуре системы
управления файлами можно выделить базисную подсистему, которая
отвечает за выделение дискового пространства конкретным файлам, и более
высокоуровневую логическую подсистему, которая использует структуру дерева
директорий для предоставления модулю базисной подсистемы необходимой ей
информации, исходя из символического имени файла. Она также ответственна за
авторизацию доступа к файлам.
Стандартный запрос на
открытие (open) или создание (create) файла поступает от
прикладной программы к логической подсистеме. Логическая подсистема, используя
структуру директорий, проверяет права доступа и вызывает
базовую подсистему для получения доступа к блокам файла.
Когда различные пользователи работают
вместе над проектом, они часто нуждаются в разделении файлов.
Разделяемый файл - разделяемый
ресурс. Как и в случае любого совместно используемого ресурса, процессы должны
синхронизировать доступ к совместно используемым файлам, каталогам, чтобы избежать
тупиковых ситуаций, дискриминации отдельных процессов и снижения
производительности системы.
Рассмотрим вначале грубый подход,
то есть временный захват пользовательским процессом файла или записи (части
файла между указанными позициями).
Системный вызов, позволяющий
установить и проверить блокировки на файл, является неотъемлемым атрибутом
современных многопользовательских ОС.
Допускается два варианта
синхронизации: с ожиданием, когда требование блокировки может привести к
откладыванию процесса до того момента, когда это требование может быть
удовлетворено, и без ожидания, когда процесс немедленно оповещается об
удовлетворении требования блокировки или о невозможности ее удовлетворения в
данный момент.
Более тонкий подход
заключается в прозрачной для пользователя блокировке отдельных структур ядра,
отвечающих за работу с файлами части пользовательских данных. Например, в ОС
Unix во время системного вызова, осуществляющего ту или иную операцию с файлом,
как правило, происходит блокирование индексного узла, содержащего
адреса блоков данных файла.
- FAT,FAT32 —
классическая архитектура файловой системы, которая из-за своей
простоты всё ещё широко используется для флеш-накопителей.
Используется в дискетах и некоторых других носителях информации.
В файловой системе FAT смежные
секторы диска объединяются в единицы, называемые кластерами. Количество
секторов в кластере равно степени двойки (см. далее). Для хранения данных файла
отводится целое число кластеров (минимум один), так что, например, если размер
файла составляет 40 байт, а размер кластера 4 кбайт, реально занят информацией
файла будет лишь 1 % отведенного для него места.
Пространство тома FAT32 логически
разделено на три смежные области:
- Зарезервированная область.
Содержит служебные структуры, которые принадлежат загрузочной записи
раздела и используются при инициализации тома;
- Область таблицы FAT,
содержащая массив индексных указателей («ячеек»), соответствующих
кластерам области данных. Обычно на диске представлено две копии таблицы
FAT.
- Область данных, где записано
собственно содержимое файлов — то есть текст текстовых файлов,
кодированное изображение для файлов рисунков, оцифрованный звук для
аудиофайлов и т. д.
В настоящее время NTFS рассматривается
в качестве предпочтительной файловой системы, как для серверных, так и для
клиентских версий Windows. Текущие реализации в Windows поддерживают
32 разрядную адресацию кластеров, что при размере кластера максимум 64
КБ (216 байт) позволяет NTFS тому достигать
размера до 256 Тб.
Некоторые возможности NTFS:
- восстанавливаемость -
способность файловой системы возвращаться к работоспособному состоянию
после возникновения сбоя. Реализуется такая возможность, во первых, за
счет поддержки атомарных транзакций, во вторых, за счет избыточности
хранения информации. Атомарная транзакция– операция с файловой системой,
приводящая к её изменению, которая либо полностью успешно выполняется,
либо не выполняется вообще.
- безопасность - защищенность
файлов от несанкционированного доступа. Реализуется при помощи модели
безопасности Windows.
- шифрование - преобразование
файла в зашифрованный код, который невозможно прочесть без ключа. Обычные
механизмы безопасности, такие как назначение прав доступа пользователей к
файлам, не обеспечивают полной защиты информации, например, в случае
перемещения диска на другой компьютер. Администратор операционной системы
всегда может получить доступ к файлам других пользователей, даже на томе
NTFS. Поэтому в NTFS включена поддержка шифрующей файловой системы EFS
(Encrypting File System), которая позволяет легко зашифровывать и
расшифровывать файлы;
- поддержка RAID (массив
недорогих (независимых) дисков с избыточностью) – возможность
использования для хранения информации нескольких дисков; данные с одного
диска автоматически копируются на другие, обеспечивая тем самым повышенную
надежность;
- дисковые квоты для
пользователей (Per-User Volume Quotas) – возможность выделения для каждого
пользователя определенного пространства на диске (квоты); NTFS не
позволяет пользователю записывать данные на диск сверх выделенной квоты.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.