Jump to content

Блокировать перераспределение

Подраспределение блоков — это функция некоторых компьютерных файловых систем , которая позволяет использовать большие блоки или единицы выделения , одновременно эффективно используя пустое пространство в конце больших файлов, пространство, которое в противном случае было бы потеряно для другого использования из-за внутренней фрагментации . [1]

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

Обоснование

[ редактировать ]

Файловые системы традиционно делят диск на блоки одинакового размера, чтобы упростить их конструкцию и ограничить фрагментацию в худшем случае . Размеры блоков обычно кратны 512 байтам из-за размера секторов жесткого диска . Когда файлы распределяются с помощью некоторых традиционных файловых систем, отдельным файлам могут быть выделены только целые блоки. Но поскольку размеры файлов часто не кратны размеру блока файловой системы, такая конструкция по своей сути приводит к тому, что последние блоки файлов (называемые хвостами ) занимают только часть блока, что приводит к так называемой внутренней фрагментации (не путать с внешняя фрагментация ). Эта трата пространства может быть значительной, если файловая система хранит много маленьких файлов, и может стать критической при попытке использовать блоки большего размера для повышения производительности. UFS и другие производные файловые системы UNIX поддерживают фрагменты. [ нужна ссылка ] что значительно смягчает этот эффект.

Схемы субраспределения

[ редактировать ]

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

Некоторые схемы подраспределения блоков могут выполнять выделение на уровне байтов; большинство, однако, просто делят блок на более мелкие (делитель обычно равен некоторой степени 2). Например, если файл размером 38 КиБ должен храниться в файловой системе с использованием блоков по 32 КиБ, для хранения файл обычно занимает два блока или 64 КиБ; оставшиеся 26 КиБ второго блока становятся неиспользуемым свободным пространством. Однако при дополнительном распределении блока размером 8 КиБ файл будет занимать всего 6 КиБ второго блока, оставлять 2 КиБ (из блока субраспределения 8 КиБ) свободными и освобождать остальные 24 КиБ блока для других файлов.

Упаковка хвоста

[ редактировать ]

С тех пор некоторые файловые системы были разработаны с учетом использования этого неиспользуемого пространства и могут упаковывать хвосты нескольких файлов в один общий хвостовой блок. Хотя на первый взгляд может показаться, что это значительно увеличит фрагментацию файловой системы, негативный эффект можно смягчить с помощью функций упреждающего чтения в современных операционных системах — при работе с короткими файлами несколько хвостов могут быть достаточно близко друг к другу, чтобы их можно было прочитать вместе. , поэтому поиск по диску не вводится. Такие файловые системы часто используют эвристику , чтобы определить, стоит ли упаковывать хвосты в данной ситуации. а программное обеспечение для дефрагментации может использовать более развитую эвристику.

Эффективность

[ редактировать ]

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

Это не только приводит к экономии дискового пространства, но также может привести к увеличению производительности, поскольку из-за более высокой локальности ссылок необходимо читать меньше данных, что также приводит к более высокой страничного кэша эффективности . Однако эти преимущества могут быть сведены на нет возросшей сложностью реализации . [3]

По состоянию на 2015 год Наиболее широко используемые файловые системы для чтения и записи с поддержкой подраспределения блоков — это Btrfs и FreeBSD UFS2. [4] (где это называется « фрагментация на уровне блоков »). ReiserFS и Reiser4 также поддерживают упаковку хвостов.

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

См. также

[ редактировать ]
  1. ^ Патент США 6 041 407 (фундаментальный патент).
  2. ^ Ганс Райзер (2001). «Использование жесткого диска, ReiserFS и Ext2fs» . Архивировано из оригинала 13 ноября 2006 года . Проверено 14 декабря 2006 г.
  3. ^ Ганс Райзер (2001). «Проектирование файловой системы ReiserFS» . Архивировано из оригинала 13 ноября 2006 года . Проверено 14 декабря 2006 г.
  4. ^ Херви, Аллен (20 июня 2005 г.). «Введение во FreeBSD, семинар PacNOG I, дополнительные темы, UFS2 и программные обновления составляют мощную комбинацию» (PDF) . ПакНОГ I. п. 23 . Проверено 22 июля 2012 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 25f1976e04712126ccb488123fb3e98f__1716216300
URL1:https://arc.ask3.ru/arc/aa/25/8f/25f1976e04712126ccb488123fb3e98f.html
Заголовок, (Title) документа по адресу, URL1:
Block suballocation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)