Виділення безперервною послідовністю блоків

Простий спосіб - зберігати кожен файл як безперервну послідовність блоків диска. При безперервному розташуванні файл характеризується адресою і довжиною (у блоках). Файл, що стартує з блоку b, займає потім блоки b+1, b+2 ... b+n-1.

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

Безперервне виділення використовується в ОС IBM/CMS, в ОС RSX-11 (для виконуваних файлів) і у ряді інших.

Цей спосіб поширений мало, і ось чому. В процесі експлуатації диск є деякою сукупністю вільних і зайнятих фрагментів. Не завжди є відповідний за розміром вільний фрагмент для нового файлу. Проблема безперервного розташування може розглядатися як окремий випадок більш загальної проблеми виділення блоку потрібного розміру із списку вільних блоків. Типовими рішеннями цієї задачі є стратегії першого відповідного, найбільш відповідного і найменш відповідного (порівняєте з проблемою виділення пам'яті в методі з динамічним розподілом). Як і у разі виділення потрібного об'єму оперативній пам'яті в схемі з динамічними розділами (див. лекцію 8), метод страждає від зовнішньої фрагментації, більшою чи меншою мірою, залежно від розміру диска і середнього розміру файлу.

Крім того, безперервний розподіл зовнішньої пам'яті непридатний до тих пір, поки невідомий максимальний розмір файлу. Іноді розмір вихідного файлу оцінити легко (при копіюванні). Частіше, проте, це важко зробити, особливо в тих випадках, коли розмір файлу міняється. Якщо місця не вистачило, то призначена для користувача програма може бути припинена з урахуванням виділення додаткового місця для файлу при подальшому рестарті. Деякі ОС використовують модифікований варіант безперервного виділення - основні блоки файлу + резервні блоки. Проте з виділенням блоків з резерву виникають ті ж проблеми, оскільки доводиться вирішувати задачу виділення безперервній послідовності блоків диска тепер уже з сукупності резервних блоків.

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

Таким чином, коли вміст диска постійно змінюється, даний метод нераціональний. Проте для стаціонарних файлових систем, наприклад для файлових систем компакт-дисків, він цілком придатний.