Файловая структура диска




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

При доступе к данным на диске операционная система использует хранящиеся на нем таблицу размещения файлов — FAT (File Allocation Table), корневой каталог (root) и подкаталоги. Стартовый сектор (загрузочная запись), таблица размещения файлов, корневой каталог и остающееся свободным пространство памяти диска, называемое областью данных, являются элементами файловой структуры диска. Они создаются операционной системой в процессе инициализации диска. На рис. 3.5 показана структура размещения данных на диске.

В дополнение к перечисленным ранее элементам в MS DOS, начиная с версии 6.0, на диске размещается используемый программой сжатия данных DoubleSpace файл сжатого тома CVF (Compressed Volume File). Таких файлов в системе может быть до 255.

 

 

Стартовый сектор  
FAT  
Корневой каталог  
Файлы, каталоги,  
свободное поле  
CVF  
   

Рис. 3.5. Элементы файловой структуры диска

 

Жесткие диски характеризуются возможностью предварительного разбиения их на несколько разделов. Поэтому в начальных секторах жесткого диска содержится информация о количестве разделов, их местоположении и размерах. Разделы жесткого диска рассматриваются как автономные виртуальные диски. Каждый из них инициализируется отдельно, имеет собственное имя (C:,D:,E:...) и элементы файловой структуры, такие же, как у гибких дисков.

 

Таблица размещения файлов

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

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

Область данных занимает большую часть диска — от конца корневого каталога до последнего сектора. Участки памяти из области данных выделяются группами из одного или нескольких последовательных секторов, называемых кластерами. Размер сектора составляет 512 байтов.

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

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

Для повышения быстродействия при выполнении операций поиска в PAT последняя копируется в оперативную память. При большой FAT и относительно малой оперативной памяти возможны проблемы ее нехватки.

Для надежности сохраняются две копии FAT, расположенные одна за другой вслед за загрузочной записью. Однако MS DOS вторую копию FAT не использует. Элементы таблицы размещения файлов имеют длину 12 или 16 битов. Последний вариант используется в дисках с более чем 4080 кластерами, например в дисках емкостью 20 Мбайтов.

 

 

Таблица 3.2 Потери дискового пространства

Размер раздела диска, Мб Размер кластера, Кб Потери на 1000 файлов, Мб
16-127,9      
128-255,9      
256-511,9      
512-999,9      

 

FAT содержит информацию о расположении файлов, свободном пространстве на диске и неисправных блоках, а также код формата диска. В первых двух элементах FAT первый байт задает код формата диска, остальные 2 или 3 байта всегда содержат FFh.

Примеры кодов, используемых для обозначения формата дисков:

@ F0h — DS (Double Sided — двухсторонняя) / HD (High Density — высокой плотности) — дискета 3.5 дюйма (18 секторов);

@ F8h — жесткий диск;

@ F9h — DS/QD (Quadraple Density — учетверенной плотности)—дискеты 5.25 или 3.5 дюйма (9 секторов).

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

Каждый элемент FAT представляет собой код из трех (12-битовая таблица) или четырех (16-битовая) шестнадцатеричных цифр. При этом используются следующие коды:

@ (0)000h — кластер свободен;

@ (0)003h - (F)FEFh — номера очередных кластеров файла;

@ (F)FF7h — дефектный кластер;

@ (F)FF0h-(F)FF9h — резервные кластеры.

На рис. 3.6 показан фрагмент FAT с цепочкой, описывающей расположение файла prl.txt.

Рис. 3.6. Пример цепочки FAT

Как видно из рис. 3.6, в каталоге для данного файла содержится номер первого кластера, занимаемого файлом. Этот номер одновременно определяет точку входа в FAT. Находящийся в ней элемент FAT указывает одновременно на очередной кластер файла и на очередной элемент FAT и т. д. до элемента таблицы, содержащего признак конца файла.

Каталоги

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

Каждый элемент каталога имеет длину 32 байта и структуру, представленную в табл. 3.3.

Таблица 3.3 Поля элемента каталога

Длина, байт Содержимое поля
  Имя файла, каталога или тома
  Расширение имени файла
  Байт атрибутов
  Резервное поле
  Код времени изменения файла
  Код даты изменения файла
  Номер первого кластера файла (подкаталога)
  Размер файла

 

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

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

Код 2Е (символ «.») в первом байте показывает, что элемент описывает сам каталог. Если и во втором байте содержится код 2Е, то элемент описывает родительский каталог («..»).

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

Атрибуты файла. Каждый бит этого поля задает определенный атрибут, указанный в табл. 3.4.

Таблица 3.4 Состав байта атрибутов

№ бита   Назначение  
  Защищенный  
  Скрытый  
  Системный  
  Метка тома  
  Каталог  
  Архивный  
  Не используется  
  Не используется  

 

Поле «время». Его содержимое рассматривается как целое число без знака, полученное по следующей формуле: часы ´2048 + минуты ´ 32 + секунды / 2.

Для выполнения обратного преобразования следует разделить содержимое поля времени на 2048, частное от деления даст нам часы. Деление остатка на 32 дает нам частное, равное числу минут, а полученный остаток при умножении его на 2 дает секунды.

Поле «дата ». Содержимое его рассматривается как целое число без знака, полученное по следующей формуле: (год-1980) ´ 512 + месяц ´ 32 + день.

По этой формуле календарь поддерживается с 1980года по 2108 год (из-за ограниченности ширины поля даты).

Номер первого кластера. Содержимое этого поля одновременно служит указателем к первому кластеру файла в поле данных и к первому элементу в цепочке FAT. Для файлов, которым не выделено места на диске, и для метки тома это поле содержит 0000h.

 

16)Характеристика и архитектура Windows 95 – 98.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: