Средства решения.
Файловая система NTFS
Допустим, мы хотим положить файлы подряд в начало диска. Кладем один файл. Он оставляет хвост занятости дополнения до кратности 16. Кладем следующий, после хвоста, естественно. Через некоторое время, по освобождению хвоста, имеем дырку <16 кластеров размером, которую потом невозможно заполнить через API дефрагментации! В результате, до оптимизации картина свободного места выглядела так: много… Читать ещё >
Средства решения. Файловая система NTFS (реферат, курсовая, диплом, контрольная)
В NT существует стандартное API дефрагментации, обладающее интересным ограничением для перемещения блоков файлов: за один раз можно перемещать не менее 16 кластеров (!), причем начинаться эти кластеры должны с позиции, кратной 16 кластерам в файле. В общем, операция осуществляется исключительно по 16 кластеров. Следствия:
- 1. В дырку свободного места менее 16 кластеров нельзя ничего переместить (кроме сжатых файлов, но это неинтересные в данный момент тонкости).
- 2. Файл, будучи перемещенный в другое место, оставляет после себя (на новом месте) «временно занятое место», дополняющее его по размеру до кратности 16 кластерам.
- 3. При попытке как-то неправильно («не кратно 16″) переместить файл, результат часто непредсказуем. Что-то округляется, что-то просто не перемещается. Тем не менее, всё место действия щедро рассыпается „временно занятым местом“ .
» Временно занятое место" служит для облегчения восстановления системы в случае аппаратного сбоя и освобождается через некоторое время, обычно где-то полминуты.
Тем не менее, логично было бы использовать это API, раз он есть. Его и используют. Поэтому процесс стандартной дефрагментации, с поправками на ограниченность API, состоит из следующих фаз (не обязательно в этом порядке):
- · Вынимание файлов из MFT зоны. Не специально — просто обратно туда их положить не представляется возможным. Безобидная фаза, и даже в чем-то полезная.
- · Дефрагментация файлов. Безусловно, полезный процесс, несколько, правда, осложняемый ограничениями кратности перемещений — файлы часто приходится перекладывать сильнее, чем это было бы логично сделать по уму.
- · Дефрагментация MFT, виртуалки (pagefile.sys) и каталогов, возможна через API только в Windows2000, иначе — при перезагрузке, отдельным процессом, как в старом Diskeeper-е.
- · Складывание файлов ближе к началу — так называемая дефрагментация свободного места. Вот это — воистину страшный процесс…
Допустим, мы хотим положить файлы подряд в начало диска. Кладем один файл. Он оставляет хвост занятости дополнения до кратности 16. Кладем следующий, после хвоста, естественно. Через некоторое время, по освобождению хвоста, имеем дырку <16 кластеров размером, которую потом невозможно заполнить через API дефрагментации! В результате, до оптимизации картина свободного места выглядела так: много дырок примерно одинакового размера. После оптимизации — одна дыра в конце диска, и много маленьких <16 кластеров дырок в заполненном файлами участке. Какие места в первую очередь заполняются? Правильно, находящиеся ближе к началу диска мелкие дырки <16 кластеров… Любой файл, плавно созданный на прооптимизированном диске, будет состоять из дикого числа фрагментов. Да, диск потом можно оптимизировать снова. А потом еще раз. и еще. и так — желательно каждую неделю. Бред? Реальность.