Цели и задачи файловой системы

Файл– это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Файлы хранятся в памяти, не зависящей от энергопитания, обычно – на магнитных дисках. Исключением является электронный диск, когда в оперативной памяти создается структура, имитирующая файловую систему.

Основными целями использования файла являются:

 Долговременное и надежное хранение информации. Долговременность достига­ется за счет использования запоминающих устройств, не зависящих от пита­ния, а высокая надежность определяется средствами защиты доступа к файлам и общей организацией программного кода ОС, при которой сбои аппаратуры чаще всего не разрушают информацию, хранящуюся в файлах.

 Совместное использование информации. Файлы обеспечивают естественный и легкий способ разделения информации между приложениями и пользователями за счет наличия понятного человеку символьного имени и постоянства хранимой информации и расположения файла. Пользователь должен иметь удобные средства работы с файлами, включая каталоги-справочники, объеди­няющие файлы в группы, средства поиска файлов по признакам, набор команд для создания, модификации и удаления файлов. Файл может быть создан од­ним пользователем, а затем использоваться совсем другим пользователем, при этом создатель файла или администратор могут определить права доступа к нему других пользователей. Эти цели реализуются в ОС файловой системой.

Файловая система(ФС) – это часть операционной системы, включающая:

 совокупность всех файлов на диске;

 наборы структур данных, используемых для управления файлами, такие, на­пример, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;

 комплекс системных программных средств, реализующих различные опера­ции над файлами, такие, как создание, уничтожение, чтение, запись, именова­ние и поиск файлов.

Файловая система позволяет программам обходиться набором достаточно простых операций для выполнения действий над некоторым абстрактным объектом, пред­ставляющим файл. При этом программистам не нужно иметь дело с деталями действительного расположения данных на диске, буферизацией данных и други­ми низкоуровневыми проблемами передачи данных с долговременного запоми­нающего устройства. Все эти функции файловая система берет на себя. Файло­вая система распределяет дисковую память, поддерживает именование файлов, отображает имена файлов в соответствующие адреса во внешней памяти, обес­печивает доступ к данным, поддерживает разделение, защиту и восстановление файлов.

Таким образом, файловая система играет роль промежуточного слоя, экранирую­щего все сложности физической организации долговременного хранилища данных, и создающего для программ более простую логическую модель этого хранилища, а также предоставляя им набор удобных в использовании команд для манипули­рования файлами.

Задачи, решаемые ФС, зависят от способа организации вычислительного про­цесса в целом. Самый простой тип – это ФС в однопользовательских и однопро­граммных ОС, к числу которых относится, например, MS-DOS. Основные функ­ции в такой ФС нацелены на решение следующих задач:

 именование файлов;

 программный интерфейс для приложений;

 отображение логической модели файловой системы на физическую организа­цию хранилища данных;

 устойчивость файловой системы к сбоям питания, ошибкам аппаратных и про­граммных средств.

Задачи ФС усложняются в операционных однопользовательских мультипро­граммных ОС, которые, хотя и предназначены для работы одного пользователя, но дают ему возможность запускать одновременно несколько процессов. Одной из первых ОС этого типа стала OS/2. К перечисленным выше задачам добавля­ется новая задача совместного доступа к файлу из нескольких процессов. Файл в этом случае является разделяемым ресурсом, а значит, файловая система должна решать весь комплекс проблем, связанных с такими ресурсами. В частности, в ФС должны быть предусмотрены средства блокировки файла и его частей, пре­дотвращения гонок, исключение тупиков, согласование копий и т. п.

В многопользовательских системах появляется еще одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя.

Еще более сложными становятся функции ФС, которая работает в составе сете­вой ОС.

Типы файлов

Файловые системы поддерживают несколько функционально различных типов файлов, в число которых, как правило, входят обычные файлы, файлы-каталоги, специальные файлы, именованные конвейеры, отображаемые в память файлы и дру­гие.

Обычные файлы, или просто файлы, содержат информацию произвольного харак­тера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных опе­рационных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычно­го файла определяется приложением, которое с ним работает. Например, тексто­вый редактор создает текстовые файлы, состоящие из строк символов, представ­ленных в каком-либо коде. Это могут быть документы, исходные тексты программ и т.д. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внут­реннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип фай­лов – их собственные исполняемые файлы.

Каталоги– это особый тип файлов, которые содержат системную справочную информацию о наборе файлов, сгруппированных пользователями по какому-ли­бо неформальному признаку (например, в одну группу объединяются файлы, со­держащие документы одного договора, или файлы, составляющие один программ­ный пакет). Во многих операционных системах в каталог могут входить файлы любых типов, в том числе другие каталоги, за счет чего образуется древовидная структура, удобная для поиска. Каталоги устанавливают соответствие между име­нами файлов и их характеристиками, используемыми файловой системой для управления файлами. В число таких характеристик входит, в частности, инфор­мация (или указатель на другую структуру, содержащую эти данные) о типе файла и расположении его на диске, правах доступа к файлу и датах его создания и модификации. Во всех остальных отношениях каталоги рассматриваются файло­вой системой как обычные файлы.

Специальные файлы– это фиктивные файлы, ассоциированные с устройствами ввода-вывода, которые используются для унификации механизма доступа к фай­лам и внешним устройствам. Специальные файлы позволяют пользователю вы­полнять операции ввода-вывода посредством обычных команд записи в файл или чтения из файла. Эти команды обрабатываются сначала программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются опера­ционной системой в команды управления соответствующим устройством.

Наши рекомендации