Я не разбираюсь в дефрагментации, но я хотел бы поделиться информацией по вашему вопросу. В первой части вашего вопроса MSDN упоминает об алгоритмах дефрагментации в своем блоге:
В Windows XP любой файл, разбитый на несколько частей, считается фрагментированным. Не так в Windows Vista, если фрагменты достаточно велики - алгоритм дефрагментации был изменен (с Windows XP), чтобы игнорировать фрагменты файла размером более 64 МБ. В результате дефрагментация в XP и дефрагментация в Vista сообщат о разной степени фрагментации на томе. Итак, какой из них правильный? Ну, прежде чем ответить на вопрос, мы должны понять, почему дефрагментация в Vista была изменена. В Vista мы проанализировали влияние дефрагментации и определили, что наиболее значительный выигрыш в производительности при дефрагментации - это когда фрагменты файлов объединяются в достаточно большие куски, так что влияние задержки при обращении к диску несущественно по сравнению с задержкой, связанной с последовательным чтением файл.есть момент, после которого объединение фрагментированных фрагментов файлов не имеет заметного преимущества .
Вы можете прочитать всю статью здесь: Проектирование Windows 7 - Дефрагментация диска.
На вторую часть вашего вопроса у Piriform Docs есть ответ:
Defraggler имеет два разных режима дефрагментации: обычная дефрагментация и быстрая дефрагментация. Быстрая дефрагментация быстрее, но результаты не так оптимальны, как при обычной дефрагментации.
Быстрая дефрагментация работает быстрее, пропуская файлы с определенными свойствами. Они указаны на вкладке «Быстрая дефрагментация» диалогового окна «Параметры».
Правило быстрой дефрагментации по умолчанию - пропускать файлы с фрагментами размером более 50 МБ.
Для лучшего понимания дефрагментации в Википедии есть хорошая страница .
Следует отметить одну важную вещь: Microsoft предоставляет API, который программы могут использовать для безопасной дефрагментации файлов. (См. Раздел « Дефрагментация файлов в MSDN» ). Любой дефрагментатор должен использовать эти API, и большинство из них.
Вся «магия» дефрагментации заключается в определении того, как выложить файлы, и это то, что различные программы используют для различения друг друга. Если вы думаете, что вы действительно умны, вы можете использовать MyDefrag, чтобы написать собственный скрипт макета.
источник
Там абсолютно нет 1 ответ. Там нет "типичного" алгоритма. Потому что каждое приложение дефрагментации использует свои алгоритмы. Конечно, среди некоторых из известных алгоритмов можно увидеть «тенденцию», но, вообще говоря, нет типичного или универсального.
Возьмите MyDefrag , удивительное приложение, кстати, вы можете, в некоторой степени, написать свои собственные алгоритмы дефрагментации.
источник