КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Принципы построения файловых систем типа FAT
Основной внутренней структурой файловых систем типа FAT является таблица размещения файлов. Ведущей идеей ее создания послужило замена отдельного бита в битовой карте на специальный более сложный элемент (элемент таблицы FAT), который кроме кодирования состояния свободного блока, позволяет задавать очередной элемент таблицы, описывающей дальнейшее размещение блоков для конкретного файла. Таким образом, таблица FAT объединяет в своих элементах как функции битовой карты, так и таблицы размещения отдельных файлов. Единицей выделения дисковой памяти в рассматриваемых системах является не отдельный сектор, а так называемый кластер. Кластером в этом контексте называют последовательную группу из фиксированного для конкретной FAT числа секторов. По техническим причинам удобства внутреннего кодирования эта группа должна состоять из 2n секторов. Поэтому размер кластера может иметь величину в 1, 2, 4, 8, 16, 32 или 64 секторов. При этом реальный объем кластера составляет от 512 байтов до 32 Кбайтов. В системе FAT файлу можно выделить только целое число кластеров, поэтому минимальный участок дисковой памяти, расходуемый файлом есть один кластер. Если для конкретной FAT кластера имеет размер в 4 сектора, то второй кластер образуют секторы с номерами 8, 9, 10 и 11, а 315-й кластер, например, образуют секторы с номерами 1260, 1261, 1262 и 1263. Пересчет номеров кластеров в номера соответствующих секторов выполняют компоненты файловой системы. Число элементов в таблице FAT равно числу кластеров, которые имеются в области данных данной файловой системы. Каждому элементу FAT однозначно соответствует кластер в области хранения данных. Оглавление файловой системы FAT строится таким образом, что в его элементе информация для связи с местом хранения файла состоит всего лишь из номера первого кластера для того файла, который именует данный элемент оглавления. Собственно таблица FAT в своих элементах может хранить: - код свободного кластера (обычно это значение 0); - условное значение для сбойного кластера; - номер следующего кластера размещения; - условное значение, обозначающее конец размещения файла (обычно все единицы двоичного кода). В качестве примера рассмотрим два файла с именами file1.txt и file2.txt, которым соответствуют следующие элементы каталога: | file1.txt | 7 | | file2.txt | 9 | и участок таблицы FAT, начинающийся с 7-й его ячейки: Номер элемента таблицы:... | 7 | 8 | 9 | 10 | 11 | 12 |... Элементы таблицы FAT:... | 8 | 10 | 2 |EOF| 0 | EOF |... Данная таблица FAT описывает 7-м своим элементом, что продолжение файла находится в 8-м кластере; 8-м элементом показывает, что продолжение файла находится в кластере 10; 9-м элементом задает, что файл продолжается в кластере 12; а элемент 10 указывает, что в кластере 10 файл заканчивается. (Предполагается, что буквосочетание EOF обозначает код конца файла в таблице FAT.) Таким образом, приведенная информация задает размещение файла file1.txt в кластерах 7, 8 и 10, а файла file2.txt – в кластерах 9 и 12. Тот же участок таблицы FAT показывает, что кластер 11 свободен. Заметим, что сами номера элементов в таблице не хранятся, а определяются по порядку размещения элементов в этой таблице. Таблицы FAT позволяют размещать файл в произвольной совокупности кластеров. Так, в приведенном примере последовательность кластеров размещения файла file1.txt временно прерывается для начала размещения файла file2.txt. В результате отдельный файл может размещаться в любой прерывистой последовательности кластеров, разбрасываясь своим содержимым по значительной части дискового пространства. Это хорошо тем, что позволяет просто использовать все дисковое пространство данных и всегда легко находить место для расширения файла. С точки же быстродействия, такая особенность системы FAT имеет отрицательный эффект: файл размещенный в несмежных кластерах будет читаться и перезаписываться значительно дольше, чем размещенный в смежных. Поэтому файловые системы FAT предназначены для операционных систем невысокой производительности: для однопрограммных и однопользовательских ОС. Тем не менее из-за своей простоты файловые системы FAT получили широчайшее распространение в персональных компьютерах конца XX века. При этом использовались две модификации этой системы, называемые FAT12 и FAT16, различаемые по числу двоичных разрядов в элементе таблицы FAT. Вариант FAT12 использовался и широко используется до сих пор для размещения файлов на дискетах. Сложившийся объем памяти таких дискет составляет порядка 1,44 Мбайт (появлялись модификации дискет с объемом около 2 Мбайт, но они не прижились). При размере сектора 512 байтов на этих дискетах можно разместить до 2880 секторов, это число перекрывается возможными значениями 12-битного двоичного кода для нумерации секторов (до 4085 значений, некоторые из значений, оставшихся до 4096=212, зарезервированы для кодов конца файла и отметки сбойных секторов). С учетом этих расчетов для дискеты достаточно использовать кластеры размеров в один сектор. Заметим, что сами таблицы FAT на дискете занимают чуть более 4 Кбайт, которые не входят в состав упомянутых 1,44 Мбайт, которые относятся только к областям данных, записываемых на дискету. В операционной системе MS DOS и еще в немногих Windows95, до сих используемых с жесткими дисками небольшой емкости (до 512 Мбайт), применяется файловая система FAT16. В ней элемент таблицы FAT имеет размер 16 битов. Это позволяет кодировать номерами около 65 тыс. кластеров (соответственно и файлов на таких логических дисках может быть не более указанного числа). Заметим, что для логических дисков с емкостью в интервале от 512 Мбайт до 1 Гбайта эта система использует кластеры размером в 16 Кбайт, а для логических дисков с емкостью в интервале от 1 Гбайта до 2 Гбайт – даже размером в 32 Кбайт. Неэффективность таких вариантов следует из того, что средняя потеря от последнего не полностью заполненного кластера файла теоретически имеет величину в половину размера такого кластера. Поэтому считается, что средняя потеря дисковой памяти при использовании FAT в последнем варианте составляет 16 Кбайт на файл. В действительности потери еще значительно больше, если используется множество маленьких файлов, не занимающих и половины одного кластера. Современные файловые системы типа FAT, начиная с самых первых в 80-х годах, используют записи оглавления размером 32 байта. Это решение сохранилось и для самых поздних модификаций (VFAT и FAT32). В классическом варианте запись оглавления как структура данных разбита на 8 частей, которые могут быть описаны структурой языка Си: struct { char name[8]; // имя файла или каталога, дополненное справа пробелами до 8 char ext[3];//расширение имени файла, дополненное справа пробелами до 3 char attr; // атрибуты файла char reserved[10]; // зарезервированное поле FTIME time; // время создания или последней модификации файла FDATE date; // дата создания или последней модификации файла unsigned short cluster_nu; // номер начального кластера размещения файла unsigned long size; // размер файла } FITEM; где структуры для задания времени и даты описываются, в свою очередь как struct { unsigned short sec: 5, min: 6, hour: 5;// секунды, минуты, часы FTIME; struct { unsigned short day: 5, month: 4, year: 7;// день, месяц, год FDATE; Таким образом, в ФС FAT вся вспомогательная информация к данным собственно файла хранится в двух структурах: каталоге и таблице FAT, причем запись в файл приводит к модификации не только кластеров хранения данных в файле и таблицы размещения, но изменяется и содержимое элемента каталога, а именно изменяются поля time, date и size этого элемента. Структура файловой системы FAT на жестком диске имеет вид, представленный в табл. 6. (перечисляются разделы системы в порядке возрастания номеров секторов). Таблица 6.1 Структура файловой системы FAT
На пронумерованные кластеры разбита только область данных раздела жесткого диска, отформатированного как файловая система FAT. Нумерация этих кластеров ведется от нулевого значения, несмотря на то, что на диске соответствующие им секторы нумеруются не с нуля. Внутренняя перенумерация осуществляется программными компонентами файловой системы. (Есть маленькая тонкость, заключающаяся в том, что реальная нумерация в FAT ведется не от 0, а от 2, а два первых элемента FAT используются для служебных целей.) Две копии таблицы FAT используются для повышения надежности хранения файлов. Специальные программы, в частности выполняемая при загрузке программа scandisk, сравнивают содержимое этих таблиц и могут обнаружить нарушение структуры файловой системы по их различию. Каждая из этих таблиц для FAT16 может иметь размер до 128 Кбайт и должна храниться во время работы компьютера в оперативной памяти. Нетрудно видеть, что даже при наличии нескольких логических дисков со структурой FAT16 это занимает незначительную часть оперативной памяти.
Дата добавления: 2014-01-05; Просмотров: 725; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |