Создание файла

ОС просматривает каталог, в котором нужно создать файл, и ищет, нет ли уже файла с таким именем - в папке не должно быть файлов с одинаковыми именами. Попутно она ищет первый свободный элемент каталога - может быть, есть удалённый файл, описатель которого можно занять. Если такого нет, то придётся расширять каталог. В описатель записывается имя файла, его атрибуты, время создания, размер - 0. Кластер этому файлу не выделяется, в номер первого кластера записывается 0, чего не может быть у файла с данными.

Удаление файла.

Как вы думаете, удаляется ли что-то с диска при удалении файла? Правильно, нет. ОС просто помечает файл как удалённый (первую букву его имени заменяет на 'х'), и проходит в FAT по его цепочке кластеров, помечая каждый как свободный. Если в эти кластеры ничего не будут записывать, то вся информация файла сохраняется на диске (надо только её найти).

Потери на остатках кластеров.

Как вы заметили, ОС меряет дисковое пространство только кластерами, не размениваясь на что-то меньшее. Поэтому даже самому маленькому файлу выделяется один кластер. Если файл имеет размер один байт, то только один байт из всего кластера содержит что-то полезное. Остальная часть кластера просто теряется. Да и с большими файлами то же самое. Если размер файла не кратен размеру кластера, то последний кластер файла заполнен только частично, и какая-то его часть теряется. Сколько же места займут 100 файлов по 2 байта? На кластере 4 Кб - 400 Кб (а не 200 байт, как считается), на кластере 16 Кб - 1,56 Мб. Чем меньше кластер, тем меньше дискового места теряется. Но зато растет таблица FAT. Как плохо. Отсюда вывод - система FAT любит только большие файлы, а ещё больше кратные размеру кластера. Неким стандартом размера кластера является 4 килобайта - посчитали, что на нём меньше всего теряется места. Но если у вас на диске будет много маленьких файлов, делайте кластер меньше, и вы выиграете.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: