Как обычно для страниц Википедии, Блок (хранилище данных) информативен, несмотря на то, что он слишком обильно связывает все ключевые слова.
В вычислениях (в частности, передача данных и хранение данных ), блок представляет собой последовательность байтов или битов , имеющую номинальная длина ( размер блока ). Данные, структурированные таким образом, называются заблокированными. Процесс помещения данных в блоки называется блокированием. Блокировка используется для облегчения обработки потока данных компьютерной программой, принимающей данные. Заблокированные данные обычно считываются целым блоком за один раз. Блокировка почти повсеместно применяется при сохранении данных на 9-дорожечную магнитную ленту , на вращающиеся носители, такие как дискеты , жесткие диски , оптические диски и NAND флэш-память .
Большинство файловых систем основаны на блочном устройстве , что соответствует уровню абстракции для оборудования , ответственного за хранение и извлечение указанных блоков данных, хотя размер блока в файловых системах может быть кратным размеру физического блока. В классических файловых системах один блок может содержать только часть одного файла . Это приводит к неэффективному использованию пространства из-за внутренней фрагментации 1039 *, поскольку длина файлов часто не кратна размеру блока, и, таким образом, последний блок файлов будет оставаться частично пустым. Это создаст свободное пространство , что в среднем составляет половину блока на файл. Некоторые более новые файловые системы пытаются решить эту проблему с помощью методов, называемых перераспределение блоков и хвостовое объединение .
Существует также разумный обзор классической Unix File System .
Традиционно геометрия жесткого диска (расположение блоков на самом диске) была CHS .
- Голова : магнитное устройство считывания / записи на каждой (стороне) пластины; может входить и выходить для доступа к различным цилиндрам
- Цилиндр : дорожка, проходящая под головкой при вращении диска
- Сектор : объем данных постоянного размера, хранящихся непрерывно на части цилиндра; самая маленькая единица данных, с которой может работать привод
CHS не так часто используется в наши дни, как
- Жесткие диски больше не используют постоянное число секторов на цилиндр. Больше данных выдавливается на диск благодаря использованию постоянной длины дуги на сектор, а не постоянного угла поворота, поэтому на внешних цилиндрах больше секторов, чем на внутренних цилиндрах.
- По спецификации ATA привод может иметь не более 2 16 цилиндров на головку, 2 4 головок и 2 8 секторов на цилиндр; с секторами 512B это ограничение 128 ГБ. Через BIOS INT13 невозможно получить доступ к чему-либо кроме 7,88 ГБ через CHS.
- Для обратной совместимости большие диски по-прежнему утверждают, что имеют геометрию CHS (в противном случае DOS не сможет загрузиться), но для доступа к любым более высоким данным требуется использование LBA-адресации.
- CHS даже не имеет смысла для RAID или не вращающихся носителей.
но по историческим причинам это повлияло на размеры блоков: поскольку размеры секторов почти всегда составляли 512B, размеры блоков файловой системы всегда были кратны 512B. (Существует движение , чтобы представить накопители с размерами секторов 1 КБ и 4 КБ, но совместимость выглядит довольно болезненной.)
Вообще говоря, меньшие размеры блоков файловой системы приводят к меньшим потерям пространства при хранении большого количества маленьких файлов (если не используются расширенные методы, такие как объединение хвостов), в то время как большие размеры блоков уменьшают внешнюю фрагментацию и уменьшают накладные расходы на больших дисках. Размер блока файловой системы обычно равен степени 2, ниже ограничен размером сектора блочного устройства и часто ограничен размером страницы ОС.
Размер страницы зависит от ОС и платформы (и, в случае Linux, также может варьироваться в зависимости от конфигурации). Как и размер блока, меньший размер блока уменьшает внутреннюю фрагментацию, но требует дополнительных административных затрат. Размер страницы 4 КБ на 32-битных платформах является обычным явлением.
Теперь перейдем к описанию косвенных блоков. В дизайне UFS
- inode описывает файл.
- В конструкции UFS количество указателей на блоки данных, которые может содержать индекс, очень ограничено (менее 16). Конкретное число, кажется, варьируется в производных реализациях.
- Для небольших файлов указатели могут напрямую указывать на блоки данных, составляющие файл.
- Для больших файлов должны быть косвенные указатели, которые указывают на блок, который содержит только больше указателей на блоки. Это могут быть прямые указатели на блоки данных, принадлежащие файлу, или, если файл очень большой, они могут быть даже более косвенными указателями.
Таким образом, объем памяти, необходимый для файла, может быть больше, чем просто блоки, содержащие его данные, когда используются косвенные указатели.
Не все файловые системы используют этот метод для отслеживания блоков данных, принадлежащих файлу. FAT просто использует одну таблицу размещения файлов, которая представляет собой гигантскую серию связанных списков, и многие современные файловые системы используют extents .