Ищу алгоритм удаления
Чтобы поверх него писать новую инфу.
ну так и я о том же.
о таблице пустых блоков
------А нету такой. За ненадобностью.
И как же ты будешь дырки отслеживать?
Ну так объявляешь блоки свободными и все.
Для этого удаленные блоки данных и записываются в таблицу свободных блоков.
Выше написано во что упрешься.
расскажи лучше IBM, что процессор может быть только одноядерным
Выше очень подробно писано. Там где об (Х/2-2)
Вижу только какую-то билиберду ![]()
Что за (Х/2-2)? х=10, 5-2=3 - не может быть блок равен 3
Можно начать с более простой проблемы.
Если размер выделяемых блоков кратен степени 2, то как быстрее всего найти два удалённых смежных блока?
Если все удаленные блоки хранятся в каком то списке.
Может все же доки на FAT почитаешь?
Так ссылку уже давал раньше - не годится эта фигня, там размер блока фиксированный
в таблицу свободных блоков.
------=
В таблицу блоков пишется:
000 - блок свободен для записи
FFF - блок последний в цепочке использованных блоков (первый - указан рядом с именем/ключем)
любое другое - номер следующего использованного этой записью блока
В таблицу блоков пишется:
так разве в этом проблема? Проблема в организации этой самой таблицы.
любое другое - номер следующего использованного этой записью блока
так это уже будет таблица использованных блоков, которая как раз и не требуется
как быстрее всего найти два удалённых смежных блока?
-------
Никак.
Потому как
- если блоки фиксированной длинны, то без разницы смежные они или нет
- если блоки переменной длины - в момент освобождения должны склеиваться
если блоки переменной длины - в момент освобождения должны склеиваться
Вот бери клей ![]()
0..15
120..127
так это уже будет таблица использованных блоков
----------------
Это таки таблица где свободные блоки помечены 000 и порядковый номер(индекс в массиве) однозначно определяет смещение от общей выбранной точки до начала блока.
Если у тебя жопа с размерами данных - можешь сделать несколько групп блоков с разными размерами блоков и писать куда подходит.
Вот бери клей
--------
А откуда взято что они смежные?
Ну да пустяки - китайца с ножницами и клеем - посадишь - будет клеить...
А откуда взято что они смежные?
Из твоего определения - "если блоки переменной длины - в момент освобождения должны склеиваться"
Это таки таблица где свободные блоки помечены 000
И нафига мне такая громадная таблица для всех используемых блоков?
Из твоего определения -
-----------
В моем определении сказано - если - смежные - там где кончается один - начинается другой.
Как по твоим цифрькам определить смежность? А то у меня одна из возможностей определить смежность как нахождение на следующей плоскости того же цилиндра да еще с фиксированным сдвигом.
А две твои таблицы - по свободным и по занятым - при том же объеме будут меньше?
В моем определении сказано - если - смежные - там где кончается один - начинается другой.
А ты случаем не забыл это определение написать?
А то у меня одна из возможностей определить смежность как нахождение на следующей плоскости того же цилиндра да еще с фиксированным сдвигом.
Ну да, если пустую бутылку от столичной обвернуть hex дампом файла, то возможно что то похожее и получится.![]()
А две твои таблицы - по свободным и по занятым
Откуда взялось две таблицы? Нужно только одна со свободными блоками.

