Тонкая настройка и оптимизация MS-DOS


Фрагментация файлов


Для того чтобы понять причины появления фрагментированных файлов, нам необходимо вспомнить основы логической структуры файловой системы MS-DOS. Мы не будем углубляться в подробности, основное внимание сосредоточим на том, как хранятся файлы на диске.

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

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

Мы уже говорили о том, что физически информация на диске храниться в секторах, которые для MS-DOS имеют размер 512 байт. Сектор - минимальный элемент данных, читаемый с диска или записываемый на диск. Для работы с файлами операционная система MS-DOS пользуется элементами данных, называемых кластерами. Кластер - это просто совокупность секторов, имеющих смежные номера. Кластер может состоять из одного сектора (для дискет) или содержать несколько секторов (для жёсткого диска).

Операционная система выделяет для записываемых на диск файлов некоторое количество кластеров, в зависимости от размера файла. Если файл маленький (например, в нём всего один или два байта), выделяется один кластер. Это, в частности, означает, что при размере кластера, равном 8 секторам, для хранения файла размером в один байт используется 4 килобайта дисковой памяти.

Где же располагаются кластеры, выделяемые файлу?

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




- Начало -  - Назад -  - Вперед -