Системы файлов
Ключевые термины
Network File System (NFS) – широко распространенная система общего доступа к файлам через локальную сеть.
Абсолютный путь - полный путь доступа к файлу, начиная от логического имени раздела, либо от корневой системной директории.
Атрибуты файла – общие свойства, описывающие содержимое файла.
Блок – логическая единица информации (часть) файла, как правило, объединяющая несколько записей, с целью оптимизации операций ввода-вывода.
Блок управления файлом (File control block - FCB) – структура в памяти, содержащая информацию о файле и используемая операционной системой.
Директория (справочник, папка) - directory, folder – структура во внешней памяти, содержащая символьные имена файлов и других директорий и ссылки на них.
Дополнение к файлу объектного кода (ДФОК):в системе "Эльбрус" - файл, содержащий в унифицированном виде таблицы именованных сущностей, определенных в программе и ее процедурах (метаданные).
Заголовок файла – головная запись файла, в которой содержатся его атрибуты.
Запись (record) – элементарная единица, часть файла, в терминах которых выполняются операции обмена с файлом.
Защита (Protection) – управляющая информация, задающая полномочия чтения, изменения и исполнения файла.
Контейнер (в системе "Эльбрус") – хранилище файлов на одном или нескольких дисках.
Монтирование – подсоединение отдельного поддерева еще не смонтированной файловой системы к какой-либо вершине (точке монтирования) общего дерева доступных файловых систем.
Набор данных (data set) - термин фирмы IBM для обозначения файла.
Общий доступ (sharing) – возможность доступа к файлам и директориям различным пользователям, в том числе – по локальной сети.
Относительный путь - путь доступа к файлу относительно некоторой текущей директории.
Память файла - его записи, содержащие собственно хранимую в нем информацию.
Путь (path) – многослоговое имя файла или директории, состоящее из имени корневой директории (или логического диска) и последовательности имен директорий последующих уровней.
Раздел (partition) – смежная область дисковой памяти, имеющая свое логическое имя (обычно одна из первых букв латинского алфавита).
Резервное копирование (back-up) – копирование файлов и директорий на внешние носители – ленту (стример), flash-память, внешний переносной жесткий диск, компакт-диск (CD, DVD), с целью их сохранности.
Символическая ссылка – ссылка из элемента одной директории на другую директорию или файл, уже имеющий другой путь доступа.
Cправочник внешних ссылок (СВС) – в системе "Эльбрус": справочник, имеющийся у каждого файла и используемый для хранения его внешних ссылок на другие файлы; элементы СВС адресуются по номерам, а не по именам.
Точка монтирования (mount point) – узел в дереве файловых систем, к которому подсоединяется новая файловая система при монтировании.
Файл (file) – смежная область логического адресного пространства, как правило, хранящаяся во внешней памяти.
Файл объектного кода (ФОК) – в системе "Эльбрус": файл, в котором хранится двоичный код исполняемой программы.
Файловая система – поддерево директорий на некоторой машине, расположенных в одном разделе.
Краткие итоги
Файл – смежная область логического адресного пространства, хранящаяся, как правило, во внешней памяти. В файле могут храниться данные или программа. Файл делится на записи постоянной или переменной длины. Возможны файлы сложной структуры, интерпретируемые программами, их создавшими (например, документ в Microsoft Word). Файлы интерпретируют ОС и обрабатывающие их программы.
Основные атрибуты файла: имя, тип, ссылка на размещение на устройстве, размер, признаки защиты, время создания, чтения и модификации. Информация о файлах хранится в структуре директорий.
Основные операции над файлом: создание, запись, чтение, позиционирование, удаление, сокращение, открытие и закрытие.
Тип файла в большинстве ОС указывается с помощью расширения его имени.
Различаются прямой (по номеру блока) и последовательный (с помощью сдвига текущей позиции) доступ к файлам. Последовательный доступ может быть смоделирован операциями прямого доступа.
Индексные файлы используются для ускорения поиска в больших основных файлах.
Директория – системная структура во внешней памяти, содержащая ссылки на файлы или другие директории.
Файловая система в "Эльбрусе" отличается тем, что файл может быть создан без явной ссылки на него из справочника (директории). Файлы и справочники хранятся в контейнерах – хранилищах из одного или нескольких дисков. Файлы могут ссылаться друг на друга через справочники внешних ссылок, имеющися у каждого файла. Недостатки файловой системы "Эльбруса" – сложность структуры файлов, большое число атрибутов, зависимость операций над файлами от типа внешнего устройства.
Файлы и директории в файловой системе хранятся в разделах – смежных областях дисковой памяти, имеющих свои логические имена.
Основные операции над директорией: поиск файла, создание файла, удаление файла, создание поддиректории, вывод содержимого директории, переименование файла, создание символической ссылки, обход файловой системы.
Различные способы логической организации директорий: одноуровневая, двухуровневая, древовидная, в виде ациклического графа, в виде произвольного графа. Рекомендуется древовидная структура директорий, так как она позволяет организовать поддиректории для каждого пользователя, использовать файлы с одинаковыми именами в директориях различных пользователей и организовывать директории тематически. Структура директорий в виде ациклического графа возникает вследствие совместного использования узлов несколькими поддиректориями. Структура директорий в виде произвольного графа может привести к наличию циклов, обнаружение которых – очень неэффективная и нежелательная операция.
Монтирование файловой системы – это ее подсоединение к узлу уже существующих, активных и используемых файловых систем (точке монтирования).
Общий доступ к файлам и директориям необходим в многопользовательских системах, в том числе – в локальных сетях. Общий доступ контролируется некоторой системой защиты. Система NFS наиболее распространена как система общего доступа к файлам в локальной сети.
Система защиты управляет полномочиями пользователей по выполнению различных действий над файлами. В ОС UNIX задаются полномочия чтения, записи и исполнения для трех групп пользователей - владельца, его группы и всех остальных.
Для реализации файловой системы ОС организует блок управления файлом, содержащий основные атрибуты файла.
Реализация системы файлов имеет иерархическую структуру, на верхнем уровне которой – пользовательские программы, на нижнем – драйверы и устройства ввода-вывода.
Для управления открытием, закрытием файлов и операциями обмена ОС хранит в памяти общую таблицу открытых файлов и таблицы открытых файлов для каждого процесса.
Набор для практики
Вопросы
- Что такое файл?
- Какого типа информация может храниться в файле?
- Какую структуру может иметь файл?
- Какие программы интерпретируют содержимое файла?
- Каковы основные атрибуты файла?
- Каковы основные операции над файлом?
- Каким образом система определяет тип файла?
- Какие расширения имен используются в операционных системах?
- Какие методы доступа к файлам Вам известны?
- Какие операции определены над файлами прямого доступа?
- Какие операции определены над файлами последовательного доступа?
- Что такое индексный файл и для чего он используется?
- Что такое директория?
- Каковы особенности, достоинства и недостатки файловой системы "Эльбруса"?
- Что такое раздел?
- Каковы основные операции над директорией?
- Каковы цели логической организации директорий?
- Какая организация директорий является наиболее предпочтительной и почему?
- Какие проблемы возникают при организации директорий в виде произвольного графа?
- Что такое монтирование файловых систем?
- Что такое точка монтирования?
- Что такое общий доступ к файлам и почему он необходим?
- Что такое NFS?
- Что такое защита файлов?
- Какие полномочия защиты и для каких пользователей рассматриваются в UNIX?
- Что такое блок управления файлом?
- Какие уровни абстракции можно выделить в реализации файловых систем?
- Какие структуры в памяти создает ОС при открытии файла и для управления операциями обмена?
Упражнения
- Реализуйте набор основных операций над файлами, используя низкоуровневые примитивы ввода-вывода.
- Реализуйте операции последовательного доступа к файлам, используя операции прямого доступа.
- Реализуйте индексные файлы и операции ускоренного поиска информации по основным файлам с использованием индексных файлов.
- Реализуйте структуру директорий и основные операции над ней, используя операции над файлами. Храните все ссылки в символической форме.
- Разработайте и реализуйте алгоритм поиска циклических ссылок в структуре директорий.
Темы для курсовых работ, рефератов, эссе
- Обзор концепции файла и типов файлов в файловых системах (реферат).
- Обзор расширений имен файлов (реферат).
- Обзор методов доступа к файлам (реферат).
- Обзор операций над директориями и методов реализации директорий в файловых системах (реферат).
- Обзор концепции монтирования и методов монтирования файловых систем в операционных системах (реферат).
- Обзор методов защиты файлов в операционных системах (реферат).
- Реализация набора основных операций над файлами, используя низкоуровневые примитивы ввода-вывода (курсовая работа).
- Реализация операций последовательного доступа к файлам, используя операции прямого доступа (курсовая работа).
- Реализация индексных файлов и операций ускоренного поиска информации по основным файлам с использованием индексных файлов (курсовая работа).
- Реализация структуры директорий и основных операций над ней, используя операции над файлами. Храните все ссылки в символической форме (курсовая работа).
- Разработка и реализация алгоритма поиска циклических ссылок в структуре директорий (курсовая работа).