Файловая система

Файл – абстракция, которая используется для того, чтобы в рамках управления данными не зависеть от того, где именно и на каких носителях находятся данные, как они структурно устроены и взаимосвязаны. Традиционно файлом называют именованную область на носителе данных. Впервые понятие файл было введено в языке COBOL в 1961г. Затем в ОС Unix стали трактовать все внешние устройства как виртуальные файлы.

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

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

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

На логическом уровне обеспечивается системные вызовы и API в соответствии с логической организацией файла.

По внутренней структуре различают файлы:

· байториентированные, абстрактным представлением которых служит линейная последовательность байтов;

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

По организации доступа к содержимому различают файлы:

· с последовательным доступом;

· с доступом по ключу.

Например, файл-последовательность байтов может иметь свойства: «начало файла», «конец файла», текущая позиция, доступная в данный момент для считывания/записи:

BOF байт байт байт байт байт байт байт байт байт байт байт байт байт EOF
                   
    count     Move Prev Current Pos Move Next     count   offset    

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

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

На логическом уровне файловая система использует файловые каталоги (справочники), или оглавления (directory). Файловые каталоги находятся на тех же носителях, что и файлы данных.

Элемент каталога содержит, как минимум, символьное имя файла и адрес его дескриптора. Дескриптор файла может непосредственно входить в элемент каталога.

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


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



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