Исторически накопители напрямую контролировались ОС, которая в свою очередь контролировалась приложением. В этом контексте теория 2 была основным способом работы ПК. ОС указала физическое местоположение для размещения данных и полностью контролировала этот процесс. В результате в ранних файловых системах была таблица «плохих секторов», поэтому после потери ваших данных компьютер мог сообщить вам, что данные были потеряны, и пометить сектор как непригодный для предотвращения дальнейшей потери данных. Сканирование диска и дефрагментация были в порядке дня.
Однако по прошествии столетия мы перешли на LBA, поэтому теперь ОС будет просто ссылаться на «логический» блок, который она хочет прочитать или записать. У самого жесткого диска теперь был интеллект, чтобы перетасовывать данные за спиной ОС, не замечая этого. Это означало повышение надежности, поскольку сектора, которые не удалось проверить, можно было просто переместить в новое физическое местоположение, не влияя на знание операционной системы о том, где находятся эти данные.
В современном оборудовании дисководы «плоского диска» обычно просто перезаписывают новые входящие данные тем, что было раньше, и, при необходимости, переназначают LBA, если сектор выглядит так, как будто он не сохраняет данные (сектор поврежден или изношен). «Флэш-накопители» обычно стирают старые ячейки и затем записывают данные в новые ячейки, процесс, известный как выравнивание износа.
В обоих случаях это возможно, потому что всегда есть неиспользованная емкость сверх сообщенного значения. Такое сверхпредоставление позволяет накопителю работать дольше, чем довольно ненадежная технология предыдущего века. Режим LBA позволяет абстрагировать физический носитель от ОС, чтобы сам диск мог принимать любые меры, которые он считает необходимыми для предотвращения потери данных.
На уровне приложения вы обычно открываете файл в режиме «ЗАПИСЬ», который сообщает ОС очистить файл («удалить» содержимое, но не сам файл), а затем записать новые данные. Все это буферизируется на уровне ОС, затем «сбрасывается» на диск, что вносит запрошенные изменения.
Учитывая эту информацию, Теория 1 - это то, что технически происходит на уровне прикладного программирования, по крайней мере, по умолчанию, поскольку существует также режим «записи с добавлением», чтобы избежать очистки содержимого файла. Сама ОС представит изменения, которые будут сделаны больше как Теория 2, но абстрагированы через LBA. Тогда сам диск, вероятно, сделает что-то, что является смесью Теории 1 и Теории 2.
Ага. Это сложно, и очень зависит от производителя / OS-разработчика / приложения-разработчика. Однако вся эта сложность направлена на то, чтобы сделать хранение данных более надежным при одновременном улучшении энергопотребления / времени автономной работы.