24535

Физические организации файловой системы FAT

Доклад

Информатика, кибернетика и программирование

Физические организации файловой системы FAT.6 Физическая организация файловой системы FAT. Как уже отмечалось аббревиатура FAT file allocation table расшифровывается как таблица размещения файлов. Файловая система FAT поддерживает всего два типа файлов: обычный файл и каталог.

Русский

2013-08-09

68.16 KB

22 чел.

Вопрос 40. Физические организации файловой системы FAT.

§7.6 Физическая организация файловой системы FAT.

Как уже отмечалось, аббревиатура FAT (file allocation table) расшифровывается как «таблица размещения файлов». Файловая система FAT поддерживает всего два типа файлов: обычный файл и каталог.

Структура раздела FAT. Логический раздел диска, отформатированный под файловую систему FAT, состоит из следующих областей (рис. 7.11).

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

Основная копия FAT – содержит информацию о размещении файлов и каталогов на диске.

Резервная копия FAT.

Корневой каталог состоит из записей, содержащих информацию о файлах и каталогах, хранящихся на диске.

Каждая запись в корневом каталоге занимает 32 байта и имеет следующий формат (см. рис. 7.1, а):

- имя файла (8 байт);

- расширение файла (3 байта);

- атрибуты файла (1 байт);

- резервное поле (10 байт);

- время создания (2 байта);

- дата создания (2 байта);

- номер первого кластера – вход в FAT (2 байта);

- размер файла (4 байта).

Байт атрибутов файла содержит 6 указателей: 5 – архив;  4-3 – метка тома;  2 – системный файл;  1 – скрытый;  0 – только для чтения.

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

Область данных – предназначена для размещения всех файлов и всех каталогов, кроме корневого каталога. FAT распределяет память только из этой области.

Область данных поделена на кластеры. Кластер представляет собой один или несколько смежных секторов в области данных. Кластер – это минимальная адресуемая единица дисковой памяти, выделяемая файлу.

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

Для указания номера кластера используются индексный указатель, который представляет собой битовое слово 2n. Чем больше n, тем большее число кластеров может адресоваться файловой системой. Различают файловые системы FAT12 (n=12), FAT16 (n=16) и FAT32 (n=32).

Количество индексных указателей (2n) в таблице FAT (как основной, так и резервной копии) равно количеству кластеров области данных. Между кластерами и индексными указателями имеется однозначное соответствие – нулевой указатель соответствует нулевому кластеру и т. д. (индексный указатель имеет такой же номер, как и у кластера).

Рис. 7.11. Физическая структура файловой системы FAT

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

- кластер свободен (не используется);

- кластер используется файлом и не является последним кластером файла; в этом случае индексный указатель содержит номер следующего кластера файла;

- последний кластер файла;

- дефектный кластер;

- резервный кластер.

Функционирование FAT. В исходном состоянии (после форматирования) все кластеры раздела свободны и все индексные указатели (кроме тех, которые соответствуют резервным и дефектным блокам) принимают значение «кластер свободен».

При размещении файла ОС просматривает FAT, начиная с начала, и ищет первый свободный индексный указатель. После его обнаружения в поле записи каталога «номер первого кластера» фиксируется номер этого указателя. В кластер с этим номером записываются данные файла, он становится первым кластером файла. Если файл умещается в одном кластере, то в указатель, соответствующий данному кластеру, заносится специальное значение «последний кластер файла». Если же размер файла больше одного кластера, то ОС продолжает просмотр FAT и ищет следующий указатель на свободный кластер. После его обнаружения в предыдущий указатель заносится номер этого кластера, который теперь становится следующим кластером файла. Процесс повторяется до тех пор, пока не будут размещены все данные файла. Так создается связный список всех кластеров файла. Кроме номера первого кластера в соответствующие поля каталога записываются имя файла, расширение и другие сведения.

При чтении механизм доступа к файлам аналогичен. В корневом каталоге считывается номер первого кластера файла – точка входа в FAT. Далее ОС последовательно считывает файл, пока не встретит маркер, обозначающий последний кластер файла.

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

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

Размер кластера выбирается из компромиссных соображений. Для уменьшения потерь дискового пространства из-за фрагментации файла желательно кластеры делать небольшими, а для сокращения объема адресной информации и повышения скорости обмена наоборот – чем больше, тем лучше. Размер кластера кратен размеру физического сектора и в зависимости от размера раздела FAT составляет от 1 до 128 секторов (от 512 байт до 64 Кбайт).

Существует несколько разновидностей FAT, отличающихся разрядностью индексных указателей, которая и используется в качестве условного обозначения: FAT12, FAT16 и FAT32. В файловой системе FAT12 используются 12-разрядные указатели, что позволяет поддерживать 4096 кластеров в области данных диска, в FAT16 – 16-разрядные указатели (65 536 кластеров) и в FAT32 – 32-разрядные (4,3 миллиарда кластеров). Когда говорят просто FAT, чаще всего подразумевают FAT16.

Поскольку число кластеров, которое может адресоваться файловой системой, равно 2n, минимальный размер кластера будет зависеть от объема раздела (объем раздела / 2n). Чем больше размер раздела диска, тем больше размер кластера. Размер кластера устанавливается автоматически самой операционной системой (табл. 7.1) или задается вручную при форматировании диска.

Таблица 7.1. Типичный размер кластера по умолчанию в Windows

Размер

раздела

Размер кластера в FAT16

Размер кластера в FAT32

Размер кластера в NTFS

До 32 Мб

512 байт

Не поддерживается

512 байт

33-64 Мб

1 Кб

512 байт

Не поддерживается*

512 байт

65-128 Мб

2 Кб

1 Кб

Не поддерживается*

512 байт

129-256 Мб

4 Кб

2 Кб

Не поддерживается*

512 байт

257-512 Мб

8 Кб

4 Кб

Не поддерживается*

512 байт

513 Мб-1,024 Гб

16 Кб

4 Кб

1 КБ

1,025-2 Гб

32 Кб

4 Кб

2 Кб

2-4 Гб

64 Кб

4 Кб

4 Кб

4-8 Гб

Не поддерживается

4 Кб

4 Кб

8-16 Гб

Не поддерживается

8 Кб

4 Кб

16-32 Гб

Не поддерживается

16 Кб

4 Кб

32 Гб-2 Тб

Не поддерживается

32 Кб

4 Кб

* По другим данным

В гибких дисках FAT кластер состоит из одного сектора (512 байт), в жестких дисках FAT16 – до 128 секторов (64 Кб). Из приведенных данных видно, что FAT32 более эффективна, поскольку, при том же объеме раздела использует меньший размер кластера. Чтобы не использовать кластеры более 4 Кбайт, FAT12 применяется на дисках объемом не более 16 Мбайт. Windows использует FAT12 как формат 3,5-дюймовых дискет, способных хранить до 1,44 Мб данных. FAT16 целесообразна для дисков с объемом не более 512 Мбайт. Для больших дисков лучше подходит FAT32, которая способна использовать кластеры 4 Кбайт при работе с дисками до 8 Гбайт и только для дисков большего объема начинает использовать 8, 16 и 32 Кбайт.

В флэш-дисках наряду с FAT используются и другие файловые системы.

Максимальный размер раздела FAT16 ограничен 4 Гбайт (216 кластеров по 64 Кбайт). FAT32 использует 32-разрядные идентификаторы кластеров, но при этом резервирует старшие 4 бита, так что эффективный размер идентификатора кластера составляет 28 бит, т. е. максимальный размер раздела превышает 8,5 Тбайт (228 кластеров по 32 Кбайт).

Таблица FAT при фиксированной разрядности индексных указателей имеет переменный размер, зависящий от объема области данных диска.

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

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

Используемый в FAT метод хранения адресной информации о файлах не отличается высокой надежностью – при разрыве списка индексных указателей в одном месте, например из-за сбоя в работе ОС по причине помех, теряется информация обо всех последующих кластерах файла.

Файловые системы FAT12 и FAT16 использовались в операционных системах MS-DOS и Windows 3.x. В современных ОС из-за постоянно растущих объемов жестких дисков и повышающихся требований к надежности, применяются другие файловые системы, в частности FAT32 (впервые появившаяся в Windows 95 OSR2).


 

А также другие работы, которые могут Вас заинтересовать

24516. Необходимость синхронизации процессов и потоков. Критическая секция 19.14 KB
  Необходимость синхронизации процессов и потоков.4 Синхронизация процессов и потоков. В многозадачной ОС синхронизация процессов и потоков необходима для исключения конфликтных ситуаций при обмене данными между ними разделении данных доступе к процессору и устройствам вводавывода. Пренебрежение вопросами синхронизации процессов выполняющихся в многозадачной системе может привести к неправильной их работе или даже к краху системы.
24517. Способы реализации взаимных исключений путем запрещения прерываний, использования блокирующих переменных, системных вызовов 103.83 KB
  Поток при входе в критическую секцию запрещает все прерывания а при выходе из критической секции снова их разрешает. Это самый простой но и самый неэффективный способ так как опасно доверять управление системой пользовательскому потоку который может надолго занять процессор а при крахе потока в критической области крах потерпит вся система потому что прерывания никогда не будут разрешены. Для синхронизации потоков одного процесса программист может использовать глобальные блокирующие переменные к которым все потоки процесса имеют прямой...
24518. Назначение и использование семафоров 46.4 KB
  Пусть буферный пул состоит из N буферов каждый из которых может содержать одну запись рис. Для решения задачи введем три семафора: e число пустых буферов; f число заполненных буферов; b блокирующая переменная двоичный семафор используемый для обеспечения взаимного исключения при работе с разделяемыми данными в критической секции. Использование семафоров для синхронизации потоков Здесь операции Р и V имеют следующее содержание: Ре если есть свободные буферы то уменьшить их количество на 1 если нет то перейти в состояние...
24519. Взаимные блокировки процессов. Методы предотвращения, обнаружения и ликвидации тупиков 35.63 KB
  Методы предотвращения обнаружения и ликвидации тупиков. Тупиковые ситуации надо отличать от простых очередей хотя и те и другие возникают при совместном использовании ресурсов и внешне выглядят похоже: процесс приостанавливается и ждет освобождения ресурса. Проблема тупиков включает в себя решение следующих задач: предотвращение тупиков; распознавание тупиков; восстановление системы после тупиков. Другой более гибкий подход динамического предотвращения тупиков заключается в использовании определенных правил при назначении ресурсов процессам.
24520. Функции ОС по управлению памятью. Типы адресов. Преобразование адресов 40.26 KB
  Сама ОС обычно располагается в самых младших или старших адресах памяти. Функциями ОС по управлению памятью являются: отслеживание свободной и занятой памяти; выделение и освобождение памяти для процессов; вытеснение процессов из оперативной памяти на диск когда размеры основной памяти не достаточны для размещения в ней всех процессов и возвращение их в оперативную память когда в ней освобождается место; настройка адресов программы на конкретную область физической памяти. Программист при написании программы в общем случае обращается...
24521. Методы распределения памяти без использования диска (фиксированными, динамическими, перемещаемыми разделами) 83.87 KB
  Методы распределения памяти без использования диска фиксированными динамическими перемещаемыми разделами. Методы распределения памяти. Рассмотрим наиболее общие подходы к распределению памяти которые были характерны для разных периодов развития ОС. Классификация методов распределения памяти 5.
24522. Понятие виртуальной памяти, ее назначение. Свопинг 14.41 KB
  Понятие виртуальной памяти ее назначение. Понятие виртуальной памяти. Необходимым условием для того чтобы программа могла выполняться является ее нахождение в оперативной памяти. Уже давно пользователи столкнулись с проблемой размещения в памяти программ размер которых превышает имеющуюся в наличии свободную память.
24523. Страничное распределение оперативной памяти 90.7 KB
  В общем случае размер виртуального адресного пространства не является кратным размеру страницы поэтому последняя страница каждого процесса дополняется фиктивной областью. Чтобы упростить механизм преобразования адресов размер страницы обычно выбирается равным 2n: 512 1024 и т. Смежные виртуальные страницы не обязательно располагаются в смежных физических страницах. Запись таблицы называемая дескриптором страницы включает следующую информацию: номер физической страницы в которую загружена данная виртуальная страница; признак...
24524. Сегментное распределение оперативной памяти 30.45 KB
  Сегментное распределение оперативной памяти.Сегментное распределение памяти. Рассмотрим каким образом сегментное распределение памяти реализует эти возможности рис. Во время загрузки процесса система создает таблицу сегментов процесса аналогичную таблице страниц в которой для каждого сегмента указывается: начальный физический адрес сегмента в оперативной памяти; размер сегмента; права доступа; признак модификации; признак обращения к данному сегменту за последний интервал времени и т.