Монтування файлових систем

Так само як файл має бути відкритий перед використанням, і файлова система, що зберігається на розділі диска, має бути змонтована, щоб стати доступною процесам системи.

Функція mount (вмонтовувати) зв'язує файлову систему з вказаного розділу на диску з існуючою ієрархією файлових систем, а функція umount (демонтувати) вимикає файлову систему з ієрархії. Функція mount, таким чином, дає користувачам можливість звертатися до даних в дисковому розділі як до файлової системи, а не як до послідовності дискових блоків.

Процедура монтування полягає в наступному. Користувач (у Unix це суперкористувач) повідомляє ОС ім'я пристрою і місце у файловій структурі (ім'я порожнього каталога), куди потрібно приєднати файлову систему (точка монтування) (див. мал. 12.9 і мал. 12.10). Hапример, в ОС Unix бібліотечний виклик mount має вигляд:

mount(special pathname,directory pathname,options);

де special pathname - ім'я спеціального файлу пристрою (у загальному випадку ім'я розділу), відповідного дисковому розділу з вмонтовуваною файловою системою, directory pathname - каталог в існуючій ієрархії, де вмонтовуватиметься файлова система (іншими словами, крапка або місце монтування), а options указує, чи слід вмонтовувати файлову систему "тільки для читання" (при цьому не виконуватимуться такі функції, як write і creat, які проводять запис у файлову систему). Потім ОС повинна переконатися, що пристрій містить дійсну файлову систему очікуваного формату з суперблоком, списком індексів і кореневим індексом.

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

Рис. 14.9. Дві файлові системи до монтування

Рис. 14.10. Загальна файлова система після монтування

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

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