Основные понятия
Файловую систему можно определить как состоящую из двух составных частей:
Совокупность файлов и управляющей информации на диске для доступа к файлам.
Совокупность программных средств ОС для доступа к файлам, которые выполняют операции с файлами.
Основные функции файловой системы можно разделить на две группы:
Функции для работы с файлами (создание, удаление, переименование файлов и т.д.)
Функции для работы с данными, которые хранятся в файлах (запись, чтение, поиск данных и т.д.)
Перечислим основные функции файловой системы:
Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти.
Распределение внешней памяти между файлами. Для работы с конкретным файлом не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того, чтобы загрузить документ в редактор с жесткого диска нам не требуется знать на какой стороне какого магнитного диска и на каком цилиндре и в каком секторе находится требуемый документ.
Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера.
Обеспечение защиты от НСД.
Обеспечение совместного доступа к файлам, не требуя от пользователя специальных усилий по обеспечению синхронизации доступа.
Обеспечение высокой производительности. Известно, что файлы используются для организации и хранения данных на машинных носителях. Файл – это последовательность произвольного числа байтов, обладающая уникальным собственным именем или поименованная область на машинных носителях.
Файл – это именованный объект, который может хранить данные, программу или другую информацию.
Виды файлов:
регулярные – обычные файлы на диске, которые состоят из блоков фиксированной длины – секторов (в MS-DOS – 512 б). При работе с регулярными файлами ОС обращается к специальной программе – драйверу блокового устройства.
специальные символьные файлы – логическое представление драйвера символьного устройства;
директории – файлы, хранящие специальную информацию о регулярных файлах и директориях.
Логическая структура файла
С точки зрения программиста файл представляет собой ленту байтов, имеющую начало и конец. В файле определен указатель чтения-записи – текущая позиция ленты байтов, к которой осуществляется доступ.
При каждом переносе байтов (чтении или записи) указатель автоматически передвигается вперед на перенесенное число байтов. Достижение конца файла определяется ОС, которая сообщает об этом в программу передачей специального условия EOF – End Of File. Условие EOF регистрируется ОС только при чтении информации в тот момент, когда указатель чтения-записи достигает значения, равного размеру файла.
Автоматическое приращение указателя записи-чтения позволяет осуществлять доступ к файлу байт за байтом. Это так называемый последовательный доступ (consequtive access). Наличие средств перемотки указателя на необходимую позицию в файле дает возможность осуществлять доступ к заданному месту в файле. Этот доступ называется прямым или произвольным (direct or random access).
Чтобы получить доступ к файлу, он должен быть открыт. Открытие файла выполняется специальными функциями ОС и связано с созданием ОС управляющей информации о файле. Эта информация сведена в специальную внутреннюю системную таблицу.
Если файл больше не нужен, он закрывается, при этом разрушается внутренняя информация о файле и обновляется информация о файле в директории, если выполнялась запись в файл.