Порядок виконання операцій

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

Розглянемо приклад створення жорсткого зв'язку для файлу [Робачевський, 1999]. Для цього файловій системі необхідно виконати наступні операції:

· створити новий запис в каталозі, вказуючий на індексний вузол файлу;

· збільшити лічильник зв'язків в індексному вузлі.

 

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