- •Пособие
- •Файловые системы.
- •Файловая система fat
- •Контрольные вопросы
- •Файловые системы vfat и fat32
- •Контрольные вопросы
- •Файловая система hpfs
- •Контрольные вопросы
- •Файловая система ntfs
- •Надежность
- •Ограничения доступа к файлам и каталогам
- •Расширенная функциональность
- •Поддержка дисков большого объема
- •Структура тома с файловой системой ntfs
- •Структура тома ntfs
- •Разрешения ntfs
- •Применение разрешений ntfs
- •Контрольные вопросы
Файловая система fat
Файловая система FAT(таблица размещения файлов) получила свое название благодаря простой таблице, в которой указываются:
-
непосредственно адресуемые участки логического диска, отведенных для размещения в них файлов или их фрагментов;
-
свободные области дискового пространства;
-
дефектные области диска (эти области содержат дефектные участки и не гарантируют чтение и запись данных без ошибок.
В файловой системе FAT дисковое пространство любого логического диска делится на две области: системную область и область данных.
Системная область логического диска создается и инициализируется при форматировании, а в последующем обновляется при работе с файловой структурой. Область данных логического диска содержит обычные файлы и файлы-каталоги; эти объекты образуют иерархию, подчиненному корневому каталогу. Элемент каталога описывает файловый объект, который может быть либо обычным файлом, либо файлом-каталогом. Область данных, в отличие от системной области, доступна через пользовательский интерфейс операционной системы. Системная область состоит из следующих компонентов (расположенных в логическом адресном пространстве друг за другом):
-
загрузочной записи (Boot Record, BR);
-
зарезервированных секторов;
-
таблицы размещения файлов;
-
корневого каталога.
Таблица размещения файлов является очень важной информационной структурой. Можно сказать, что она представляет собой адресную карту данных, в которой описывается и состояние каждого участка области данных, и принадлежность его к тому или иному файловому объекту.
Всю область данных разбивают на так называемые кластеры. Кластер представляет собой один или несколько смежных секторов в логическом дисковом пространстве (точнее – только в области данных). Кластер – это минимальная адресуемая единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Кластеры введены для того, чтобы уменьшить количество адресуемых единиц в области данных логического диска. Каждый файл занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что при большом размере кластера может приводить к заметной потере дискового пространства. На дискетах кластер занимает один или два сектора, а на жестких дисках его размер зависит от объема раздела. В таблице FAT кластеры, принадлежащие одному файлу (или файлу-каталогу), связываются в цепочки. Для указания номера кластера в файловой системе FAT16 используется 16-разрядное слово, следовательно можно иметь до 216 = 65 536 кластеров (с номерами от 0 до 65 535).
Таблица 1 Соотношение между размером раздела и размером кластеров в FAT16
Емкость раздела, Мбайт |
Количество секторов в кластере |
Размер кластеров, Кбайт |
16-127 |
4 |
2 |
128-255 |
8 |
4 |
256-511 |
16 |
8 |
512-1023 |
32 |
16 |
1024-2047 |
64 |
32 |
Номер кластера всегда относится к области данных диска (пространству, зарезервированному для файлов и подкаталогов). Номера кластеров соответствуют элементам таблицы размещения файлов. Первый допустимый номер кластера всегда начинается с 2. Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:
-
прежде всего, уменьшается размер самой таблицы FAT;
-
уменьшается возможная фрагментация файлов;
-
ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочек фрагментов дискового пространства, выделенного для него.
Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов. Как мы только что заметили, в среднем на каждый файл теряется около половины кластера. Из вышеприведенной таблицы следует, что при размере кластера в 32 сектора (объем раздела при этом – от 512 до 1023 Мбайт), то есть 16 Кбайт, средняя величина потерь на файл равняется 8 Кбайт, и при нескольких тысячах файлов потери могут составлять более 100 Мбайт. Поэтому в современных файловых системах размеры кластеров ограничиваются (обычно от 512 байт до 4 Кбайт), либо предоставляется возможность выбирать номер кластера.
Достаточно наглядно идею файловой системы, использующей таблицу размещения файлов, иллюстрирует ниже приведенный рисунок.
Из рисунка видно, что файл MYFILE.TXT размещается, начиная с восьмого кластера. Всего файл MYFILE.TXT занимает 12 кластеров. Цепочка (chain) кластеров для нашего примера может быть записана следующим образом: 8,9,ОА,0В, 15,16,17,19,1А, IB, 1C, ID. Кластер с номером 18 помечен специальным кодом F7 как плохой (bad), он не может быть использован для размещения данных. При форматировании обычно проверяется поверхность магнитного диска, и те сектора, при контрольном чтении с которых происходили ошибки, помечаются в FAT как плохие. Кластер ID помечен кодом FF как конечный (последний в цепочке) кластер, принадлежащий данному файлу. Свободные (незанятые) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый свободный кластер. Возможные значения, которые могут приписываться элементам таблицы FAT, приведены в таблице 2.
Таблица 2
-
Значение
Описание
000h
свободный кластер
fff0h-fff6h
зарезервированный кластер
fff7h
плохой кластер
fff8h-ffffh
последний кластер в цепочке
0002h-ffefh
номер следующего кластера в цепочке
Поскольку файлы на диске изменяются (удаляются, перемещаются, увеличиваются или уменьшаются), то упомянутое правило выделения первого свободного кластера для новой порции данных приводит к фрагментации файлов, т.е. данные одного файла могут располагаться не в смежных кластерах, а порой в очень удаленных друг от друга, образуя сложные цепочки. Естественно. Что это приводит к существенному замедлению работы с файлами. В связи с тем, что таблица FAT используется при доступе к диску достаточно интенсивно, она обычно загружается в оперативную память и остается там настолько долго, насколько это возможно. Если таблица большая, файловый кэш, напротив, относительно небольшой, в памяти размещаются только фрагменты этой таблицы, к которым обращались в последнее время.
В связи с чрезвычайной важностью таблицы FAT она обычно хранится в двух экземплярах, второй из которых непосредственно следует за первым. Обновляются копии FAT одновременно, используется же только первый экземпляр. Если он по каким-либо причинам окажется разрушенным, то произойдет обращение ко второму экземпляру. Так, например, утилита проверки и восстановления файловой структуру ScanDick из ОС Windows 9х при обнаружении несоответствия первичной и резервной копии FAT предлагает восстановить главную таблицу, используя данные из копии.
Корневой каталог отличается от обычного файла-каталога тем, что он помимо размещения в фиксированном месте логического диска имеет еще и фиксированное число элементов. Для каждого файла и каталога в файловой системе хранится информация в соответствии со структурой, представленной в таблице 3.