LINUX.ORG.RU

История изменений

Исправление Manhunt, (текущая версия) :

По визуальному наблюдению за работой виндовых дефрагментаторов (не требующих отмонтирования диска, кстати), в голову приходит следующий алгоритм:
1. Есть курсор, который движется от начала диска к концу. Всё, что лежит до курсора - уже дефрагментировано. Всё что лежит после курсора - подлежит дефрагментации.
2. Выбираем очередной файл, который хотели бы дефрагментировать. Выбор определяется отдельной эвристикой, с учетом группировки по директориям, по частоизменяемости, с учетом допустимого количества фрагментов-на-файл и доступного сразу за курсором свободного места.
3. Сразу за курсором расчищаем место под наш файл, выметая всех кто там оказался куда-нибудь в сторонку (не важно, куда именно).
4. Перемещаем файл на расчищенное место и сдвигаем курсор за конец файла.
5. Если сразу за курсором идет небольшой кусочек свободного места и не-фрагментированный файл, то сдвигаем курсор за этот файл.

Исходная версия Manhunt, :

По визаульному наблюдению за работой виндовых дефрагментаторов (не требующих отмонтирования диска, кстати), в голову приходит следующий алгоритм:
1. Есть курсор, который движется от начала диска к концу. Всё, что лежит до курсора - уже дефрагментировано. Всё что лежит после курсора - подлежит дефрагментации.
2. Выбираем очередной файл, который хотели бы дефрагментировать. Выбор определяется отдельной эвристикой, с учетом группировки по директориям, по частоизменяемости, с учетом допустимого количества фрагментов-на-файл и доступного сразу за курсором свободного места.
3. Сразу за курсором расчищаем место под наш файл, выметая всех кто там оказался куда-нибудь в сторонку (не важно, куда именно).
4. Перемещаем файл на расчищенное место и сдвигаем курсор за конец файла.
5. Если сразу за курсором идет небольшой кусочек свободного места и не-фрагментированный файл, то сдвигаем курсор за этот файл.