Re[4]: покластерная запись в файл
От: RedHair  
Дата: 15.10.04 10:56
Оценка:
Итак!

PD>Ну 100 Кб — это не большой, а маленький файл. Большой — это 10 Гбайт

PD>. Но дело, конечно, не в этом.

Большой — относительно размера кластера в смысле бОльше чем размер кластера.

>> Далее, если открыть диск (не файл), и начать в нем искать кусок своих данных, вы вполне его не найдете, ведь первая треть его находится в одном кластере, а вторая — совсем в другом, не идущем непосредственно за первым.


PD>Вот здесь твоя ошибка (точнее, непонимание) и заключается.

PD>Работа с файлами идет на разных уровнях.
PD>A.На нашем уровне (обычное Win32 приложение) файл — это
PD>последовательность байт определенного размера. Все. Больше ничего. Как
PD>они там хранятся — НАС ВООБЩЕ НЕ КАСАЕТСЯ. Хоть в кластерах, хоть с
PD>помощью духа святого. Мы этого не знаем, не хотим знать и не имеем права
PD>знать. В любом случае, для нас файл непрерывный. Других НЕ БЫВАЕТ.


Вполне возможно, я чего не понимаю. Постараюсь объяснить, что я имею в виду.
Представьте себе ситуацию: у вас есть некие данные в некоем файле. Допустим для вас они представляют собой расскз Тургенева. С физической точки зрения, это пресловутые нолики и единички.
Что случится с вашим рассказом при записи на сильно фрагментированные диск? — он тоже будет фрагментированным.
На физическом уровне фраза "возчик был невысокий, крепкого сложения" (точнее последовательность ноликов-единичек, ее представляющая) разорвется на (предположим) два куска "возчик был невы" и "сокий, крепкого сложения".
Далее представим ситуацию, когда вы файл случайно затерли. И теперь, единственная для вас возможность (на уровне А) восстановит ваш файл — открыть ваш диск — CreateFile("\\.\C",....) и считывать оттуда куски информации пока не найдете свою фразу.
Одна проблема — вы ее не найдете никогда- потому что физически она хранится разорвано.

Вот собственно, ход моих размышлений. Я не права?

PD>Я упростил. В действительности уровень B состоит из ряда подуровней

PD>(драйвер файловой системы, драйвер томов (кстати, он позволяет (о ужас!
PD> хранить файл не только фрагментированным на диске, но хранить его
PD>куски на разных дисках вообще), драйвер физического диска. И каждый из
PD>этих подуровней ничего не знает о подуровне ниже и не хочет знать.


Мдаа... Сильно. а где можно про это прочитать? МСДН Дефрагментация — уже читала.
Я бы не сказала, что там очень подробно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.