Я пытаюсь понять концепцию «кластера» в файловой системе FAT. В частности, каковы отношения между кластером, блоком, сектором.
Я понимаю следующее
1) Блок / страница имеет размер 4096 байт, а блок разделен на сектора.
2) Сектор — это наименьшая единица хранения на диске.
3) Данные, которые мы извлекаем и храним в блоках / страницах.
4) На диске есть дорожки, а на каждой дорожке есть блоки / страницы.
Правильно ли мое понимание?
Я не уверен, где кластер вписывается во все это.
Может кто-то прояснить мое понимание
Цитирование по этой ссылке:http://cquirke.mvps.org/9x/fat.htm
кластер: Единая единица хранения данных на логическом уровне файловой системы FATxx
сектор: Единая единица хранения на уровне физического диска
кластер это наименьшая единица хранения, которой может управлять файловая система операционной системы. Например, если файл размером 1 КБ хранится в системе с размером кластера 32 КБ (см. Таблицу ниже), файл размером 1 КБ занимает 32 КБ дискового пространства. Ниже приведены размеры кластеров для файловых систем FAT32 на компьютерах с Windows.
Disk Size Cluster size
512MB-8GB 4KB
8-16GB 8KB
16-32GB 16KB
32GB+ 32KB
Сектор — это единица хранения на диске, установленная самим диском. Обычно это будет 256 байт для дискеты или, возможно, RAM-диска, и 512 байт для большинства жестких дисков.
Кластер — это единица хранения, заданная файловой системой. Это (по крайней мере, почти) всегда некоторое целое число секторов, поэтому размер кластера кратен размеру сектора.
Термин «страница» не очень часто используется в MS-DOS. Процессоры x86 могут определять / использовать 4096-байтовые страницы, но они делают это в защищенном режиме, тогда как DOS работает в реальном режиме (или его симуляции, такой как задача V86). Хотя ни MS-DOS, ни программы, работающие под ним, вообще не видят и не работают со страницами (за исключением того, что он переключается в защищенный режим сам, возможно с использованием чего-то вроде VCPI или DPMI).
Другой термин, который является В MS-DOS используется абзац, занимающий 16 байт памяти. Это наименьшее количество, которое можно адресовать, используя только адрес сегмента, без смещения. Например, когда вы выделяете память из MS-DOS, вы указываете размер выделения в виде количества абзацев.