|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.11.2015, 14:27 | #1 |
Пользователь
Регистрация: 17.11.2013
Сообщений: 16
|
Файловая система FAT-16. Ограничение на размер кластера
Везде указывается, что у данной файловой системы есть некоторые ограничения.
Одно из них - это максимальный размер кластера - 128 секторов. Для "хранения" значения отпускается один байт (по адресу 0xFE0D). Значит теоретически максимально возможное количество секторов в кластере должно быть равным 2^16-1, т.е. 255 (0xFF). Тогда что ограничивает это значение до цифры 128 (0x40) ? |
12.11.2015, 14:34 | #2 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
контрольный бит?
|
12.11.2015, 15:05 | #3 |
Пользователь
Регистрация: 17.11.2013
Сообщений: 16
|
Что за "контрольный бит" ?
|
12.11.2015, 17:58 | #4 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
можно сказать, это тоже самое, что "контрольная сумма", но по отношению к байту)
|
12.11.2015, 18:17 | #5 |
Пользователь
Регистрация: 17.11.2013
Сообщений: 16
|
Не совсем понятно.
Последний раз редактировалось fevgin; 13.11.2015 в 02:42. |
13.11.2015, 17:25 | #6 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
"контрольная сумма" - некая добавочная приписка к основному блоку информация, которая говорит лишь о том, достоверная ли основная информация или имеет повреждения, случившиеся в процессе передачи/хранения. При недостоверности либо идет перезакачка файла, либо восстановление с резервной копиии, либо вывешивается пользователю "Incorrect data - [OK] [Cance]", либо происходит какая другая местечковая реализация обработки ошибок.
Контрольная сумма высчитывается на основе всего блока данных. Функция расчета суммы подбирается так, чтобы при минимальном изменении контролируемых данных эта самая "сумма" изменялась напрочь. И, ессно, с минимально возможным числом вероятных коллизий. Но есть одна немаловажная вещь - сама "контрольная сумма" тоже может повредится) В отношении байта, если контрольный бит говорит про недостоверность, то с вероятностью примерно 1/8 он сам недостоверен. Плюс, если соврались два бита (из контроллируемых семи), то контрольный бит будет указывать на достоверность. Я предполагаю, что "контрольный бит" высчитывается как последовательный XOR соответствующих битов. Тем не менее, при всех ограничениях, лучше иметь хоть какой-то пусть убогий контроль, чем не иметь никакого совсем) // естественно, про контрольный бит - мои догадки, а что там в действительности происходит в FAT16 я не знаю практически ничего) |
13.11.2015, 17:41 | #7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
там разрешена только степень двойки.
потому и максимальное значение 128(последний бит = 1) Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
13.11.2015, 18:09 | #8 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Это так, потому что так решили в Microsoft. Цитата из официальной доки:
Код:
|
13.11.2015, 20:13 | #9 |
Форумчанин
Регистрация: 22.05.2012
Сообщений: 352
|
Вероятно, решение ограничить 128 секторами следует из соображений эффективности использования дискового пространства: чем больше кластер, тем больше будет тратится на мелкие файлы.
http://www.oldlinux.org/Linux.old/di...s/cnix/FAT.pdf |
15.11.2015, 19:20 | #10 |
Пользователь
Регистрация: 17.11.2013
Сообщений: 16
|
Цитата:
Разрешена только степень двойки. 2^7=128. Следующее значение было бы: 2^8=256, но для указания количества секторов в кластере используется один байт, что даст максимальное КОЛИЧЕСТВО 255 (FFh). Т.е. закодировать "количество" 256 никак не получится. Последний раз редактировалось fevgin; 15.11.2015 в 19:36. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Файловая система | Донат | Общие вопросы C/C++ | 3 | 22.04.2012 22:32 |
файловая система | Hell Knight | Общие вопросы C/C++ | 2 | 09.12.2011 15:11 |
Есть ли ограничение в 97-2010 версиях Excel ограничение на размер массива? | clever77 | Microsoft Office Excel | 18 | 15.05.2011 00:50 |
Файловая система | androidvsu | Общие вопросы по Java, Java SE, Kotlin | 3 | 13.10.2010 19:04 |
Файловая система | student_63 | Win Api | 1 | 12.04.2008 20:29 |