Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Область файлов и каталогов, понятие кластера

Поиск

После корневого каталога на диске следуют сектора, где собственно и хранятся файлы и каталоги (все каталоги кроме корневого тоже можно рассматривать как особые файлы). Эта область называется областью файлов и каталогов (File and Directory Data Region) или просто областью данных. Область данных предназначена для размещения всех файлов и всех каталогов, кроме корневого каталога.

Вся эта область разделена на так называемые кластеры. Кластер (cluster) – это логическая единица хранения данных, объединяющая группу секторов. Например, на дисках с размером секторов в 512 байт, 512-байтный кластер содержит один сектор, тогда как 4-килобайтный кластер содержит восемь секторов. Это наименьшее место на диске, которое может быть выделено для хранения файла.

Размер кластера (число секторов) выбирается кратным степени числа 2 (размер кластера может быть описан формулой 2n*512). Это означает, что кластер может иметь размер 512, 1024, 2048, 4096 и.т.д. байт. Конкретный размер кластера на диске задается при его форматировании в зависимости oт объема диска и размера FAT Файл на диске занимает целое число кластеров, от одного до всех кластеров, входящих в область данных. Количество файлов на диске не может превышать количества кластеров

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

Структура каталога и дескриптора файла

Как мы уже говорили, любой каталог содержит 32-байтовые элементы – дескрипторы (Descriptor – дословно описатель, описательный элемент), описывающие файлы и другие каталоги. Поля дескриптора описывают различные характеристики файла (или каталога). Приведем формат дескриптора файла (Таблица 6):

Таблица 6 Формат дескриптора файла

Размер (байт) Поле
  Имя файла или каталога
  Расширение имени файла
  Атрибуты файла.
  Время создания файла или время его последней модификации
  Дата создания файла или время его последней модификации
  Номер первого кластера, распределённого файлу
  Размер файла в байтах

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

 

Таблица 7. Атрибуты файлов.

Бит Название атрибута Перевод Описание
  R – READ ONLY только для чтения Файл предназначен только для чтения, в этот файл нельзя писать и его нельзя стирать.
  Н–HIDDEN скрытый Файл скрывается от показа, пока явно не сказано обратное
  S –SYSTEM системный Системный файл. Этот бит обычно установлен в файлах, являющихся составной частью операционной системы.
  V–VOLUME том Данный дескриптор описывает метку диска. Для этого дескриптора поля имени файла и расширения имени файла должны рассматриваться как одно поле длиной 11 байтов. Это поле содержит метку диска.
  D–DIRECTORY каталог Дескриптор описывает файл, являющийся подкаталогом данного каталога. Только операционная система может управлять этим атрибутом.
  А–ARCHIVE Архивный (требующий архивации) Файл изменён после резервного копирования или не был скопирован программами резервного копирования (сейчас используется редко)

 

Информация, хранимая в атрибутах, используется операционной системой при выполнении файловых операций. Например, значение атрибута DIRECTORY позволяет отличать файл от подчиненного каталога, а по значению атрибута ARCHIVE отбираются файлы для резервного копирования. Атрибут READ ONLY запрещает изменять и удалять файл, а атрибут HIDDEN делает файл «невидимым». Биты атрибутов VOLUME и DIRECTORY может изменить только операционная система, остальные атрибуты могут изменяться пользователем.

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

Структура FAT

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

Иными словами FAT состоит из элементов, элементов в таблице ровно столько, сколько кластеров на диске, и кластеру с номером N соответствует элемент FAT с тем же номером N. Каждый из элементов FAT представляющий один кластер может содержать следующие коды (см. таблицу 8):

Таблица 8. Возможные значения элемента FAT

Код, содержащийся в элементе FAT Описание
(0)000h Доступный (пустой) кластер
(0)002h до (F)FEFh Номер следующего кластера
(F)FF0h до (F)FF7h Зарезервированный кластер (используется NTFS)
(F)FF7h Плохой кластер (BAD)
(F)FF8h до (F)FFFh Конец цепочки (EOF)

 

Вернемся к задаче определения точного места на диске (номеров кластеров), где располагается файл. Если файл занимает более одного кластера, то все кластеры, занимаемые файлом, организуются в цепочку кластеров (cluster chain).

Для того чтобы прочитать файл целиком, необходимо найти его дескриптор в ката­логе и считать первый кластер, на который ссылается этот дескриптор – это будет начало файла. Далее следует прочитать соответствующий первому кластеру элемент FAT и определить, является ли он последним (соответствующий означает, что кластеру с номером N соответствует элемент из таблицы FAT тоже с номером N). Если прочитанный элемент FAT не содержит признака конца файла (EOF), то он показывает номер следующего кластера цепочки, который также должен быть считан. Снова проверяем очередной элемент FAT. Повторяем это до тех пор, пока очередь не дойдет до последнего кластера в цепочке.

Пример цепочки кластеров

Пусть некоторый каталог содержит дескриптор файла (обозначим его А.txt), в которой содержится ссылка на начальный кластер (кластер № 18) из цепочки кластеров, выделенных этому файлу.

На рисунке 6 обычным шрифтом обозначены номера элементов FAT (номера элементов FAT соответствуют номерам кластеров), а жирным шрифтом обозначены числовые значения, записанные в этих элементах.

 
 

 

  Фрагмент таблицы FAT (разбит на элементы)   Фрагмент области данных (разбит на кластеры)
      Пустой
      Пустой
      1-й кластер файла A.txt
      2-й кластер файла A.txt
      3-й кластер файла A.txt
      1-й кластер другого файла
  EOF   2-й (последний) кластер другого файла
      4-й кластер файла A.txt
      5-й кластер файла A.txt
  BAD   Плохой кластер
      6-й кластер файла A.txt
      7-й кластер файла A.txt
      8-й кластер файла A.txt
  EOF   9-й (последний) кластер файла A.txt
      Пустой
      Пустой
      Пустой

Рисунок 6 Пример цепочки кластеров для файла A.txt

 

 

Из приведенного на рисунке 6 фрагмента FAT следует:

Файл занимает цепочку из десяти кластеров: 12–13–14–17–18–20–21–22–23. Каждый элемент указывает на следующий элемент цепочки - значение элемента № 13 равно 14, значение элемента 14 равно 17 и т.д. Последний элемент содержит специальный код EOF (FF8h) - конец файла.

Еще одна цепочка из двух кластеров начинается с кластера № 15 и кончается кластером № 16. Чтобы узнать, какому файлу (или каталогу) распределены эти кластеры, нужно отыскать в каком-либо каталоге диска дескриптор файла, содержащий ссылку на начальный кластер № 15.

Кластер № 19 помечен, как «плохой» (BAD - FF7) и не входит ни в одну из цепочек. При поиске свободных кластеров для записи нового файла этот кластер будет игнорироваться.

Кластеры № 10, 11, 24, 25, 26 пусты (точнее - объявлены таковыми). Они доступны для распределения под вновь записываемые файлы.

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



Поделиться:


Последнее изменение этой страницы: 2016-04-08; просмотров: 1144; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.184.207 (0.011 с.)