ТОП 10:

Неперервне розміщення файлів



Найпростіший підхід до фізичної організації файлових систем — це неперервне розмі­щення файлів. При цьому кожному файлові відповідає набір неперервно розта­шованих кластерів на диску (рис. 12.2). Для кожного файла мають зберігатися адре­са початкового кластера і розмір файла.

Зазначимо, що розподіл дискового простору в цьому разі подібний до дина­мічного розподілу пам'яті. Для пошуку вільного блоку на диску можна викори­стати алгоритми першого підходящого або найкращого підходящого блоку.

Неперервне розміщення файлів вирізняється простотою в реалізації та ефектив­ністю (наприклад, весь файл може бути зчитаний за одну операцію), але має іс­тотні недоліки.

♦ Під час створення файла користувач має заздалегідь задати його максимальну довжину і виділити весь простір на диску за один раз. Збільшувати розміри файлів під час роботи не можна. У багатьох ситуаціях це абсолютно неприй­нятно (наприклад, неможливо вимагати від користувача текстового редактора щоб він вказував остаточну довжину файла перед його редагуванням).

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

♦ записування такої файлової системи здійснюють повністю за один раз, під час записування для кожного файла заздалегідь відомий його розмір;

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

Розміщення файлів зв'язними списками

Прості зв'язні списки

Іншим підходом є організація кластерів, що належать файлу, у зв'язний список. Кожен кластер файла містить інформацію про те, де перебуває наступний кластер цього файла (наприклад, його номер). Найпростіший приклад такого розміщення бачимо на рис. 12.3. Заголовок файла в цьому разі має містити посилання на його перший кластер, вільні кластери можуть бути організовані в аналогічний список.

Розміщення файлів з використанням зв'язних списків надає такі переваги:

♦ відсутність зовнішньої фрагментації (є тільки невелика внутрішня фрагмен­тація, пов'язана з тим, що розмір файла може не ділитися націло на розмір кластера);

♦ мінімум інформації, яка потрібна для зберігання у заголовку-файла (тільки посилання на перший кластер);

♦ можливість динамічної зміни розміру файла;

♦ простота реалізації керування вільними блоками, яке принципово не відрізня­ється від керування розміщенням файлів. Цей підхід, однак, не позбавлений і серйозних недоліків:

♦ відсутність ефективної реалізації випадкового доступу до файла: для того щоб одержати доступ до кластера з номером п, потрібно прочитати всі кластери файла з номерами від 1 до я-1;

♦ зниження продуктивності тих застосувань, які зчитують дані блоками, за роз­міром рівними степеню числа 2 (а таких застосувань досить багато): частина будь-якого кластера повинна містити номер наступного, тому корисна інфор­мація в кластері займає обсяг, не кратний його розміру (цей обсяг навіть не є степенем числа 2);

♦ можливість втрати інформації у послідовності кластерів: якщо внаслідок збою буде втрачено кластер на початку файла, вся інформація в кластерах, що йдуть за ним, також буде втрачена.

Є модифікації цієї схеми, які зберегли своє значення дотепер, найважливішою

з них є використання таблиці розміщення файлів.







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.65.91 (0.006 с.)