Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

5.3.2.1. Непрерывное размещение

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

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

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

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

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

Однако для непрерывного размещения есть вполне приемлемая сфера применения, в которой данная схема все еще используется на практике. Этой сферой применения являются компакт-диски. Размеры файлов, которые будут располагаться на диске, заранее известны и не будут изменяться по мере дальнейшего использования. Однако, в случае использования DVD-дисков могут возникнуть некоторые сложности. Например, если один фильм может быть закодирован одним файлом размером около 4,5 Гбайт, то в файловой системе UDF (Universal Disk Format), которая используется для DVD-дисков, чтобы представить размер файла, используется 30-битовое число, ограничивающее размер записываемых файлов одним гигабайтом. По этой причине фильмы, записываемые на DVD-диски, хранятся, как правило, в трех или четырех файлах, каждый из которых будет являться непрерывным. Такие физические составляющие одного файла имеют название экстентов.

Предыдущий раздел Оглавление Следующий раздел