Виділення та звільнення місця в пам’яті

Проблема виділення та звільнення місця в дисковій пам’яті в дечому нагадує проблему розподілення основної пам’яті при мультипрограмуванні із змінними розділами.

Якщо бажано розміщувати файли в сусідніх ділянках дискової пам’яті, то ці ділянки необхідно зібрати разом. Але, оскільки, в процесі роботи системи файли спотворюються і знищуються, з часом простір дискової пам’яті звичайно робиться все більш фрагментованим. У зв’язку з цим при розміщенні наступних файлів вони розміщуються розкиданими блоками.

Один із можливих способів розв’язку цієї проблеми полягає в тому, щоб періодично виконувати ущільнення вмісту пам’яті – „збирання сміття.” Файли можна реорганізувати таким чином, щоб вони займали сусідні ділянки дискової пам’яті, а вільні ділянки можна зібрати в єдиний блок або групу великих блоків. Деякі системи передбачають динамічне збирання сміття в процесі роботи (як правило, в не робочий час). Система може вибирати для реорганізації файли тих користувачів, які в біжучий момент не працюють, або файли, до яких не було звертання на протязі довгого часу.

При створені ефективної файлової системи необхідно чітко уявляти собі, який контингент користувачів вона буде обслуговувати. Зокрема, треба знати кількість користувачів, середню кількість файлів на одного користувача, характер задач, що розв’язуються, та інше. Ці файли необхідно ретельно аналізувати, для того, щоб визначити найбільш раціональні форми організації файлів і їх директорій.