Логическая и физическая организация файлов.
Как правило, различают логическую (концептуальную) и физическую организацию данных на внешних устройствах.
Логическая организация.
Как правило, различают структурированную модель и неструктурированную модель. Неструктурированная - поток битов или логических записей. Структурированная - файл разбивается на области, каждая из которых хранит ту или иную управляющую информацию. Как правило, используют два способа доступа к логическим записям: читать или писать последовательно (последовательный доступ), позиционировать с помощью операций поиска на данную логическую запись, чтение, запись (прямой доступ, индексный, индексно-последовательный).
Последовательный доступ. Как правило, записи могут быть двух типов: фиксированной длины и переменной длины. Для доступа к записи n необходимо пропустить (n-1)L байтов. Для записи переменной длины, как правило, в поле записи, имеются данные о ее длине, либо метка конца блока (логической записи).
Прямой доступ. Все записи имеют номера и идентификатор для позиционирования. Логическая запись адресуется установкой каретки с дальнейшей операцией чтения/записи. Как правило, при прямом доступе логические записи фиксированной длины.
Индексный доступ. В начале файла имеется таблица (индекс), причем каждому индексу соответствует физический адрес записи.
Доступ осуществляется логически по индексу, который преобразуется в номер физической записи из таблицы.
Индексно-последовательный. Существует таблица индексов, но другая.
Индекс | ||||||||
№ записи | … | |||||||
Индекс указывает на зону внешней памяти, в которой записи расположены последовательно. Сначала по индексу находится зона внешней памяти, а в зоне последовательно запись.
Библиотечный доступ – оглавление - разделы
Физическая организация.
Файл, логически имеющий вид непрерывной области байтов, физически разбросан по диску кусками. Сектор - наименьшая адресуемая единица обмена данными между диском и памятью. Разметка внешней памяти на сектора осуществляется процедурой форматирования низкого уровня. Каждое внешнее устройство имеет различное количество секторов и их длинну. Разметку диска под ту или иную файловую систему выполняет соответствующая утилита данной ОС. На внешнем носителе могут располагаться несколько логических устройств (файловых систем). Раздел - непрерывная часть физического диска, которую ОС рассматривает как отдельное устройство. В различных разделах форматирование может происходит по-разному. Кластер - информационный блок, может содержать несколько секторов. Можно выделить следующие способы физической организации данных:
- непрерывное размещение (файлу предоставляется последовательность кластеров диска, образующих непрерывный участок дисковой памяти). Достоинства: высокая скорость доступа, минимальная адресная информация. Недостатки: фрагментация.
- связанные списки кластеров. При таком способе в начале каждого кластера содержится ссылка на следующий кластер. Достоинства: минимальная адресная информация. Недостаток: сложность реализации доступа, для того, чтобы прочитать n-ый кластер нужно прочитать (n-1).
- использование связанного списка индексов. Является модификаций предыдущего способа. Файлу выделяется память в виде списка кластеров. Номер первого кластера запоминается в записи каталога. С каждым кластером диска связан некоторый элемент - индекс. Индексы располагаются в отдельном месте. Когда диск свободен, все индексы равны 0 или 1. Если кластер n выделен некоторому файлу, то индекс становится равным n либо (n+1) - номер следующего кластера данного файла. А может быть нули. Достоинства: минимальная адресная информация, не требуется просмотр всех кластеров, требуется просмотр таблицы индексов, которая может хранится в реальной ОП (перемещать головки и читать не нужно много раз). Пример: файловая система MSDOS.
-использование перечисления кластеров файла. В этом случае перечень кластеров служит сам по себе адресной частью файла. Достоинства: прямая адресация к файлу (без просмотра цепочек). Недостаток: длина адреса зависит от размера файла.
- i-узлы. Метод состоит в связывании с каждым файлом структуры данных, называемой i-node. i-node содержит атрибуты файла и адреса кластеров секторов. Достоинства: i-node находится в реальной памяти, когда файл открыт, поэтому доступ осуществляется быстро. Если i-node занимает n байт, а одновременно может быть открыто k файлов, то для массива i-node потребуется kn байт (это не много, значительно меньше FAT).
Адресация файлов в UFS.
Кластеры файла адресуется в соответствии с некоторой схемой.
Для хранения адресов кластеров файла выделяется 15 полей, каждое поле состоит из 4х байт. Кластеры в этой ФС имеют длину 8 кб. Если размер файла <= 12, то можно реализовать 12*8 кб=96 кб файла. Если > 12, 13е поле содержит адрес кластера, в котором расположены адреса следующих кластеров файла. Если количество кластеров файлов ещё больше, то подключается 13 и 14 поля, причем они представляют собой иерархию кластеров, в которых находятся номера. Такая схема адресации позволяет адресовать файл, длинной 7*10^10 байт.
Файловая система MSDOS.
Логический раздел можно представить следующим образом (файловая система FAT):
Загрузочный сектор содержит программу загрузки (IPL).
Формат записи и каталоге или файле:
имя файла | расширение | атрибуты | резерв |
время | дата | №кластера | размер |
3. Дескриптор описывает метку диска.
4. Дескриптор описывает файл.
5. Архивный.
6-7. Резерв.
FAT - массив или таблица об использовании поверхности диска. Когда создается файл, создается запись в каталоге, в которой отмечается первый выделенный для данного файла кластер. При размещении файла ОС просматривает FAT и ищет первый свободный индекс. FAT представляет собой массив из элементов. ОС ищет первый свободный индекс или указатель. Каждый кластер может находится в следующих состояниях:
свободный - 0
зарезервированный
плохой
последний кластер в списке
номер следующего кластера в списке.
После отыскания свободного элемента в FATе номер первого кластера фиксируется в записи. В кластер с этим номером файла заносятся данные файла (первая порция). Если файл умещается в один кластер, то в FATe в этом месте ставится флажок - последний кластер файла (недействительный символ). Если файл не умещается в один кластер, то ОС продолжает просматривать FAT в поиске свободного указателя. Номер первого свободного указателя заносится в предыдущий указатель.