Tad писал(а):
мне хочется знать правдуTad, тебе сказали правду. В том смысле, как оно есть на самом деле, а не как кто-то говорит или пишет.
Не веришь -- логичнее взять и проверить, а не [контр]аргументировать одной цитатой, против другой. Делов-то, на полчаса... наверное быстрее, чем до "спецов" дойти.
Давай изложим первую ПРАВДУ на пальцах:
1) У меня есть 2Г памяти физической, и я выделяю себе первый кусок в 0.5Гига. Получаю нулевые стартовые адреса - как физический, так и логический
2) Мне нужен еще один объект, тоже 0.5Гига. Благополучно выделяю. Получаю стартовые адреса 0x20000000 - как физический, так и логический
3) Хочу расширить первый массив до 1Гига. Получаю для него новый логический адрес 0x40000000 с таким же размером. То есть, непрерывный кусок логических данных. А физически он состоит из двух кусков: первый (0-0x1FFFFFFF) мэпится в логическое пространство (0x40000000-0x5FFFFFFF), и второй (0x40000000-0x5FFFFFFF) мэпится в логическое пространство (0x60000000-0x7FFFFFFF).
4) И все, не надо ничего ТУПО копировать. И главная правда заключается в том, что железячники для того и сделали эту виртуализацию, чтобы логический кусок памяти был непрерывный (для быстрого доступа ко всем элементам массива), а тупо копировать Гиги было бы не надо.
А то, что физически память "страшно фрагментирована" - это вообще всем по барабану. Программист об этом и не узнает никогда. Точно так же, как программист никогда не узнает, если на микросхеме памяти (статической) поменять местами два адресных проводочка. Или данных.
Все просто, в общем-то... ПРАВДА, она вообще склонна к простоте.
Вторая ПРАВДА заключается в том, что делать такое можно только на уровне оси. Железячники такую возможность предоставили. Делает ли это ОСЬ - проверить можно. Поскольку юридических обязательств (в смысле - документировать) разработчики ОСИ на себя брать не склонны.
А на более низком уровне (например, на уровне разработчиков менеджера памяти в Дельфи) этого сделать нельзя. Если не обращаться с сервисам ОСИ (и эти сервисы, видимо, должны содержать в своем имени магическое слово realloc).
Элементарно же, Ватсон !!!
Если не обращаются, значит тупо копируют. Хоть пишут они б этом, хоть нет -- да по барабану, у них тупо нет других вариантов.
А ПРАВДА -- вещь объективная, ей пофиг, вообще-то, кто чего пишет.
Ну, Tad, какая тебе еще правда нужна