Файловая система как способ отделения логической и физической структуры данных

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

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

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

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

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

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

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

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

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

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

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

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

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

Итак, понятие «файловая система» включает в себя следующие компоненты:

– совокупность всех файлов на диске с их физической организацией;

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

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

Отделение логической структуры от физической привело к появлению дополнительного программного слоя (файловой системы), обеспечивающего возможность работы прикладного программиста на уровне логической организации файлов. При этом файловая система:

– с одной стороны, предоставляет пользователю интерфейс в терминах логических записей и операций над ними;

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: