Цитата
IgNat:
Место под журнал является постоянным и занимает минимальное место?
Flash - Чем занята память?
Да, журнал постояного размера, обычно 64k.
на небольших разделах может быть меньше.
В журнал по кругу, используюя указатель записываются так называемые транзикции.
То есть моменты, к которым состояние файловой системы можно откатить, если какая-та операция записи прервется из за сбоев, так чтобы вся файловая система не разрушилась.
Как именно это работает, к сожалению засекречено.
NTFS постоянно модифицирует записи MFT о файлах и директориях (индексах). Так как отмечает не только время, создания и модификации файлов, но и последнего обращения.
А раз происходит запись, то и в журнал тразикций тоже происходит запись.
Цитата
IgNat:
При превышении количества (хотя мне сложно это представить ) циклов записи на данном участке, OS передвинет/отведёт новое место под журнал?
Flash - Чем занята память?
Нет ОСь этим не занимается. Этим занимается сам контороллер флешки, если умеет.
Дело в том, что ОСь работает только с в адресации LBA.
А физическое адресация секторов, (обычно называемая АBA) у флешек очень замысловатая. В зависимости от количества микросхем, банков памяти микросхем, объема блоков данных.
Часто используется параллельный доступ к нескольким блокам данных разных микросхем и банков. для ускорения работы, особенно во время записи. Ведь для записи нужно блок данных считать, изменить в нем нужный сектор, занулить блок данных и потом записать на место этот блок.
Так что, например, LBA-1000 и LBA-1001 могут физически быть в разных микросхемах, или банках или блоках данных
Все вместе называется - адресная трансляция или просто - транслятор.
Сколько циклов записи выдержит та или иная ячейка блока данных, неизвестно. может 1000, а может 300 000.
Так что считать количество записей почти бесмысленно.
Используется анализ на основе контроля ECC.
Алгоритмы контроля ECC очень сложные, многоуровневые. Когда блок данных начинает требовать, очень выcокого уровня корекции ECC. Уже становится ясно, что в блоке много убитых ячеек. Тогда контроллер меняет его из резерва, если есть. Но резерв использовать очень накладно. Хотя это лучший метод.
Потому контроллер просто меняет, соответствие ABA-LBA , на самый мало-используемый блок данных.
Но таких контроллеров мало, только в дорогих флешках. В большистве же флешек, обмена блоков вообще нет.
У метода контроля годности блоков по ECC, есть и еще один недостаток.
Суть вот в чем, для того чтобы записать в ячейку, нужно зарядить изолированный затвор полевого транзистора. т.е. пробить диэлектрик электрическим разрядом. Рано или поздно диэлектрик совсем пробьется, и тогда электроны начнут растекаться, сразу на много ячек памяти. Так что ни какой контроль ECC уже не спасет.
Блок коректно вычитать нельзя, менять его в такой ситуации бесмысленно. Данные потеряны сразу в большом блоке данных.
128/256/512кб в зависимости от организации микросхемы.
К тому же, чтобы вести учет всех изменений трансляции, накапливать статистику по блокам, нужно еще и служебные блоки писать, они обычно тоже в тех же микросхемах памяти где и данные.
Накроется служебный блок, все - флешка совсем неисправна.
Так что основной недостаток всех флешек, невозможно заранее предсказать момент отказа.