Физическая организация fat системы кратко

Обновлено: 04.07.2024

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

На каждой стороне каждой пластины размечены тонкие концентрические коль­ца — дорожка (traks), на которых хранятся данные. Количество дорожек зависятот типа диска. Нумерация дорожек начинается с 0 от внешнего края к центру диска. Когда диск вращается головка, считывает двоич­ные данные с магнитной дорожки или записывает их на магнитную дорожку.

Совокупность дорожек одного радиуса на всех поверхностях всех пластин паке­та называется цилиндром (cylinder). Каждая дорожка разбивается на фрагменты, называемые секторами (sectors), или блоками (blocks), так что все дорожки име­ют равное число секторов, в которые можно максимально записать одно и то же число байт. Сектор имеет фиксированный для конкретной системы размер, вы­ражающийся степенью двойки. Чаще всего размер сектора составляет 512 байт

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

Операционная система при работе с диском использует, как правило, собствен­ную единицу дискового пространства, называемую кластером (cluster). При соз­дании файла место на диске ему выделяется кластерами. Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.

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

Каждый файл занимает целое число кластеров. Каждый файл представляет целое число смежных секторов в области данных. Размер КЛАСТЕРА зависит от файловой системы и размера диска.

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

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

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

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

Физическая организация FAT

Файлу выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связыва­ется некоторый элемент — индекс. Индексы располагаются в отдельной области диска — в MS-DOS это таблица FAT (Fife Allocation Table), занимающая один кластер. Когда память свободна, все индексы имеют нулевое значение.

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

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

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

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

§ Корневой каталог занимает фиксированную область размером в 32 сектора (16 Кбайт), что позволяет хранить 512 записей о файлах и каталогах, так как каждая запись каталога состоит из 32 байт.

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

Загрузочный сектор FAT Копия FAT Корневой каталог Область данных

Системная область

Рис. 6. Структура FAT.

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

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

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

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

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

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

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

Существует несколько разновидностей FAT, отличающихся разрядностью индексных указателей, которая и используется в качестве условного обозначе­ния: FAT12, FAT16 и FAT32.

В файловой системе FAT12 используются 12-раз­рядные указатели, что позволяет поддерживать до 4096 кластеров в области дан­ных диска;

в FAT16 — 16-разрядные указатели для 65 536 кластеров;

в FAT32 — 32-разрядные для более чем 4 миллиардов кластеров

Имя файла 8байт Расширение 3байта Атрибуты Резервные
R A S H
Резервные Время 2байта Дата 2байта № первого кластера 2байта Размер 4байта

Рис. 7.Структура записи в каталоге MS DOS (32 байта).

Планирование заданий

Задача – одна или несколько программ, связанных общим назначением, ресурсами.

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

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

Все потоки в рамках одного процесса имеют одно и то же адресноепространство.

Все потоки одного процесса всегда решают общую задачу одного пользователя.

Вытесняющие и невытесняющие алгоритмы планирования

С самых общих позиций все множество алгоритмов планирования можно разделить на два класса: вытесняющие и невытесняющие алгоритмы планирования.

§ Невытесняющие (non-preemptive) алгоритмы основаны на том, что активному потоку позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы она выбрала из очереди другой, готовый к выполнению поток. (Невытесняющее планирование используется, например, в MS Windows 3.1 и ОС Apple Macintosh.)

§ Вытесняющие (preemptive) алгоритмы – это такие способы планирования потоков, при которых решение о переключении процессора с выполнения одного потока на выполнение другого потока принимается операционной системой, а не активной задачей.

Отличие:Основным различием между preemptive и non-preemptive алгоритмами является степень централизации механизма планированияпотоков. Привытесняющей многозадачности механизм планирования потоков целиком сосредоточен в операционной системе.

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

Алгоритмы планирования

1.Алгоритмы планирования, основанные на квантовании

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

· поток завершился и покинул систему,

· поток перешел в состояние ожидания,

· исчерпан квант процессорного времени, отведенный данному потоку.

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


Рис.8. Алгоритмы планирования, основанные на квантовании.

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

Потоки, которые не полностью использовали выделенный им квант и им требуется операции ввода-вывода, могут получить компенсацию в виде привилегий при последующем обслуживании. Планировщик создает две очереди готовых потоков: 1-ая пришла в состояние готовности в результате исчерпания кванта, а 2-ая – потоки завершили ввод/вывод. Сначала будет просматриваться вторая очередь и, если она пуста, то квант будет выделяться из первой очереди.







Рис. 9. Квантование с предпочтением потоков, интенсивно обращающихся к вводу - выводу

2. Алгоритмы планирования, основанные на приоритетах

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

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

Во многих ОС предусматривается возможность изменения приоритета в течение жизни потока:

1. либо по инициативе самого потока, когда он обращается с соответствующим вызовом к ОС;

2. либо директивно администратором системы в зависимости от важности работы,

3. либо назначаются самой ОС в зависимости от ситуации в системе, в этом случае их называют динамическими. Но приоритет может оставаться фиксированным на протяжении всей жизни потока.

Существует 2 вида приоритетного планирования: обслуживание с относительными приоритетами и обслуживание с абсолютными приоритетами.

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


Рис.10. Алгоритмы планирования, основанные на относительных приоритетах.

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


Рис. 11. Алгоритмы планирования, основанные на абсолютных приоритетах.

В системах с пакетной обработкой используются относительные приоритеты (ОС OS/360), т.к. очень малы затраты на переключение процессора с одной работы на другую. Т.к может одна задача занимает процессор долгое время. поэтому в системах с разделение времени и реального времени такая дисциплина обслуживания не подходит.

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

3. Смешанные алгоритмы планирования.

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

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

Процессы реального времени также используют стратегию фиксированных приоритетов, но пользователь может менять.

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

Ресурсом называется всякий объект, который может распределяться внутри системы.

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

Управление ресурсами включает решение следующих задач:

§ Планирование ресурса – т.е. определение, какому процессу, когда и в каком количестве следует выделить ресурс;

§ Удовлетворение запросов на ресурсы;

§ Отслеживание состояния и учет использования ресурса – т.е. поддержание оперативной информации занят или свободен ресурс и какая доля ресурса уже распределена;

§ Разрешение конфликтов между процессами.

В ОС могут возникнуть тупиковые ситуации. Предположим, что несколько процессов конкурируют за обладание конечным числом ресурсов. Если запрашиваемый процессом ресурс недоступен, процесс переходит в состояние ожидания. В случае если требуемый ресурс удерживается другим ожидающим процессом, то первый процесс не сможет сменить свое состояние. Такая ситуация называется тупиком. Говорят, что в мультипрограммной системе процесс находится в состоянии тупика, дедлока (deadlock) или клинча, если он ожидает события, которое никогда не произойдет. Системная тупиковая ситуация или зависание системы является следствием того, что один или более процессов находятся в состоянии тупика или взаимоблокировки.

Роль химии в жизни человека: Химия как компонент культуры наполняет содержанием ряд фундаментальных представлений о.

Эталон единицы силы электрического тока: Эталон – это средство измерения, обеспечивающее воспроизведение и хранение.

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

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

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

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

Корневой каталог.

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

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

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

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

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

Рис. 22 Схема адресации файла в ФС FAT

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

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

Очевидно, что разрядность индексного указателя должна быть такой, чтобы в нем можно было задать максимальный номер кластера для диска определенного объема. Известны файловые системы FAT12, FAT16 и FAT32, отличающиеся разрядностью индексного указателя и соответственно количеством кластеров в области данных, а значит емкость диска. В современных операционных системах используется файловая система FAT32, с 32-разрядным индексным указателем, в котором можно задать указатель для более чем 4 миллиардов кластеров (4Гбайт).

FAT32 подходит для больших дисков, она способна использовать кластеры 4 Кбайт при работе с дисками объемом до 8 Гбайт и только для дисков большего объема начинает использовать кластеры 8, 16 и 32 Кбайт.




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

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

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

Рассмотрим физическую организацию одной из самых старых и распространённых файловых систем FAT (File Allocation Table).

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

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

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

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

Корневой каталог.

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

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

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

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

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

Рис. 22 Схема адресации файла в ФС FAT

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

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

Очевидно, что разрядность индексного указателя должна быть такой, чтобы в нем можно было задать максимальный номер кластера для диска определенного объема. Известны файловые системы FAT12, FAT16 и FAT32, отличающиеся разрядностью индексного указателя и соответственно количеством кластеров в области данных, а значит емкость диска. В современных операционных системах используется файловая система FAT32, с 32-разрядным индексным указателем, в котором можно задать указатель для более чем 4 миллиардов кластеров (4Гбайт).

FAT32 подходит для больших дисков, она способна использовать кластеры 4 Кбайт при работе с дисками объемом до 8 Гбайт и только для дисков большего объема начинает использовать кластеры 8, 16 и 32 Кбайт.

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

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

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

Для обеспечения доступа приложений к файлам операционная система с файловой системой FAT использует следующие структуры:

  • загрузочные секторы главного и дополнительных разделов ;
  • загрузочные секторы логических дисков (разделов);
  • корневой каталог;
  • область данных;
  • цилиндр для выполнения диагностических операций чтения-записи.

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

Загрузочный сектор главного раздела (называемый главной загрузочной записью – Master Boot Record – MBR ) является первым сектором на жестком диске (цилиндр 0, головка 0, сектор 1) и состоит из двух элементов [10]:

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

Загрузочный сектор раздела содержит:

  • блок параметров диска, в котором содержится информация о разделе (размер, количество секторов, размер кластера , метка тома и др.);
  • загрузочный код – программу, с которой начинается процесс загрузки операционной системы (для Ms-Dos и Windows 9x – файл Io.sys).

Загрузочные секторы логических дисков создаются программой Format . Они похожи на загрузочные диски разделов. Однако при загрузке выполняется код только того сектора, который находится в активном разделе.

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

  • загрузочный сектор;
  • основная FAT-таблица, содержащая информацию о размещении файлов и каталогов на диске;
  • копия FAT-таблицы;
  • корневой каталог – фиксированная область (16 Кбайт для жесткого диска), позволяющая хранить 512 записей о файлах и каталогах (каждая запись состоит из 32 байтов);
  • область данных для размещения всех файлов и каталогов, кроме корневого каталога.

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

  • кластер свободен (0000h);
  • кластер используется (любое значение, кроме специальных);
  • последний кластер файла (FFF8h – FFFFh);
  • кластер поврежден (FFF7h);
  • резервный кластер (FFF6h).

FAT-система

Размер FAT -таблицы определяется количеством кластера. Разрядность индексного указателя FAT -таблицы должна быть такой, чтобы можно было задать максимальный номер кластера диска определенного объема. В соответствии с разрядностью дискового указателя существуют несколько разновидностей FAT : FAT12, FAT16 , FAT32 (соответственно 2 12 , 2 16 и 2 32 кластеров). Тип используемой FAT определяется программой Fdisk, хотя и записываются они в процессе форматирования высокого уровня программы Format . На всех дискетах применяется FAT 12, на жестких дисках до 512 Мбайт – FAT16 , на жестких дисках, имеющих большую емкость при использовании Windows 95 OSR2 и Windows98 – FAT 32 (вообще размер кластера может быть от 1 до 128 секторов или от 512 байт до 64 Кбайт). Максимальный размер раздела FAT16 ограничен объемом 4 Гбайт (2 16 = 65536 кластеров по 64 Кбайт). Максимальный размер раздела FAT 32 практически не ограничен (232 кластеров по 32 Кбайт).

За копией FAT -таблицы следует корневой каталог – база данных , содержащая информацию о записанных на диске данных. Каждая запись в ней имеет длину 32 байта и содержит всю информацию о файле, которой располагает операционная система . Формат записи приведен ниже.

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

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

Пример размещения двух файлов

Файловые системы FAT 12 и FAT16 оперируют с именами файлов, составленных по схеме 8.3 (имя, расширение). В Windows 95 с появлением 32-разрядной виртуальной FAT - VFAT ( Virtual file allocation table ) поддерживаются имена длиной 255 символов (заметим, что изменился лишь программный код, поддерживающий FAT16 , он стал 32-м). Для обеспечения обратной совместимости ОС создает его псевдоним , удовлетворяющий стандарту 8.3. Делается это следующим образом.

  1. Первые 3 символа после последней точки в длинном имени файла становятся расширением псевдонима.
  2. Первые шесть символов длинного имени файла, за исключением пробелов, которые игнорируются, преобразуются в символы верхнего регистра и становятся шестью символами стандартного имени файла. Недопустимые символы (+ , ; = [28] ), которые могут использоваться в Windows 95, преобразуются в символы подчеркивания.
  3. Добавляются символы ~1 (седьмой и восьмой) к псевдониму имени файла.

Если первые шесть символов нескольких файлов одни и те же, то добавляются символы ~2, ~3 и т.д.

VFAT хранит псевдонимы длинных имен в поле стандартных имен файлов записи каталога файла. Таким образом, все версии DOS и Windows могут получить доступ к файлу под длинным именем с помощью его псевдонима. Остается проблема: как хранить 255 символов имени файлов 32 байт записи каталога? Разработчики файловой системы решили эту проблему следующим образом: были добавлены дополнительные записи каталога для хранения длинных имен файлов. Чтобы предыдущие версии не повредили эти дополнительные записи каталога, VFAT устанавливает для них атрибуты, которые нельзя использовать для обычного файла: только для чтения, скрытый, системный и метка тома. Такие атрибуты DOS игнорирует, а следовательно, длинные имена файлов остаются нетронутыми. Подобным же образом решается проблема длинных имен в Windows NT/2000/2003/XP, применяющих для хранения имен двухбайтовый формат на каждый символ – Unicode.

Как уже отмечалось, выбор типа FAT -системы во многом определяется емкостью жесткого диска. При использовании FAT16 нельзя создать раздел емкостью более 2-х Гбайт. Для устранения этого ограничения фирма Microsoft разработала FAT 32. Она работает как FAT 16, но имеет отличие в организации хранения данных. Кроме того, FAT 32 можно установить с помощью программы Fdisk. Впервые FAT 32 была реализована в Windows 95 OEM Service Release 2 (OSR2). Она встроена и в Windows 98/Ме/NT/2000.

Основное преимущество FAT 32 – возможность использования 32-разрядных записей вместо 16-разрядных, что приводит к увеличению кластеров (вместо 216=65536) до 268 435 456 в разделе. Это значение в Windows 95 OSR2 эквивалентно 2 28 , а не 2 32 , поскольку 4 бита из 32 зарезервированы для других целей.

При работе в FAT 32 размер раздела может достигать 2 Tбайт при кластере размером 8, 16 или 32 Кбайт. Новая файловая система может иметь 232 кластеров размером 512 байт , а размер единичного файла может составить 4 Гбайт. Реально FAT 32 поддерживает максимальный размер тома до 32 Гбайт. Это связано с тем, что в Windows 2000 это ограничение обусловлено программой Format . Вообще максимально возможный том – 2 Tбайт при кластере 32 Кбайт.

Существует важное отличие FAT 32 от ее предшественниц – положение корневого каталога: он может располагаться в любом месте раздела и иметь любой раздел. Это обеспечивает динамическое изменение размера раздела. Независимые разработчики использовали это свойство. Так, фирма Power- Quest создала программу Partion Magic, позволяющую переопределять разделы после их создания.

Файловая система FAT 32 также использует преимущество двух копий FAT . Как и в FAT 16, в FAT 32 первая копия является основной и периодически копирует данные в дополнительную копию FAT . При проблемах с главной копией FAT системы переключаются в дополнительную копию, которая становится главной.

Примечание: программа Fdisk автоматически определяет размер кластера на основе выбранной файловой системы и размерам раздела. Однако существует недокументированный параметр команды Format , позволяющий явно указать размер кластера : Format /z:n, где n – размер кластера в байтах, кратный 512.

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

  • скорость доступа к данным;
  • объем адресной информации файла;
  • степень фрагментированности дискового пространства;
  • максимально возможный размер файла.

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

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

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

Популярным способом, применяемым, например, в файловой системе FAT, является использование связанного списка индексов (рисунок ( в)). Этот способ является некоторой модификацией предыдущего. Файлу также выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связывается некоторый элемент — индекс. Индексы располагаются в отдельной области диска.

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

Последний подход с некоторыми модификациями используется в традиционных файловых системах ОС UNIX s5 и ufs. Для сокращения объема адресной информации прямой способ адресации сочетается с косвенным. Ну да хуй с ним.

Читайте также: