Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль 1 Інформатика.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16 Мб
Скачать
☆
    1. Фізична організація s5 і ufs

Файлові системи s5 (отримали назву від System V, родового імені декількох версій ОС UNIX, розроблених в Bell Labs компанії AT&T) і ufs (UNIX File System) використовують дуже близьку фізичну модель. Це не дивно, тому що система ufs є розвитком системи s5. Файлова система ufs розширює можливості s5 з підтримки великих дисків і файлів, а також підвищує її надійність.

Розташування файлової системи s5 на диску ілюструє рис. 12. Розділ диску, де розміщується файлова система, ділиться на чотири області:

  • завантажувальний блок;

  • суперблок (superblock) містить загальну інформацію про файлову систему: розмір файлової системи, розмір області індексних дескрипторів, число індексних дескрипторів, список вільних блоків і список вільних індексних дескрипторів, а також іншу адміністративну інформацію;

  • область індексних дескрипторів (mode list), порядок розташування індексних дескрипторів у якій відповідає їхнім номерам;

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

Рис. 12. Розташування файлової системи s5 на диску

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

  • ідентифікатор власника файлу;

  • тип файлу; файл може бути файлом звичайного типу, каталогом, спеціальним файлом, а також конвеєром або символьним зв’язком;

  • права доступу до файлу;

  • тимчасові характеристики: час останньої модифікації файлу, час останнього звертання до файлу, час останньої модифікації індексного дескриптора;

  • число посилань на даний індексний дескриптор, дорівнює кількості псевдонімів файлу;

  • адресна інформація;

  • розмір файлу в байтах.

Кожний індексний дескриптор має номер, що одночасно є унікальним ім’ям файлу. Індексні дескриптори розташовані в особливій області диску в строгій відповідності до своїх номерів. Відповідність між повними символьними іменами файлів і їхніми унікальними іменами установлюється за допомогою ієрархії каталогів. Система веде список номерів вільних індексних дескрипторів. При створенні файлу йому виділяється номер із цього списку, а при знищенні файлу номер його індексного дескриптора повертається в список.

Запис про файл у каталозі складається всього із двох полів: символьного імені файлу і номера індексного дескриптора. Наприклад, на рис. 13 показана інформація, що міститься в каталозі /user.

Рис. 13. Структура каталогу у файловій системі s5

Файлова система не накладає особливих обмежень на розмір кореневого каталогу, оскільки він розташований в області даних і може збільшуватися як звичайний файл.

Доступ до файлу здійснюється шляхом послідовного перегляду всього ланцюжка каталогів, що входять у повне ім’я файлу, і відповідних їм індексних дескрипторів. Пошук завершується після одержання всіх характеристик з індексного дескриптора заданого файлу. Розглянемо цю процедуру на прикладі файлу /bin/my_shell/print, що входить до складу файлової системи, зображеної на рис. 14.

Рис. 14. Пошук адреси файлу за його символьним ім’ям

Визначення фізичної адреси цього файлу включає наступні етапи:

  1. Насамперед проглядається кореневий каталог з метою пошуку першої складової символьного імені – bin. Визначається номер (у даному прикладі – 6) індексного дескриптора каталогу, що входить у кореневий каталог. Адреса кореневого каталогу відома системі.

  2. З області індексних дескрипторів зчитується дескриптор з номером 6. Початкова адреса дескриптора визначається на підставі відомих системі номера початкового сектора області індексних дескрипторів і розміру індексного дескриптора. З індексного дескриптора 6 визначається фізична адреса каталогу /bin.

  3. Проглядається каталог /bin з метою пошуку другої складової символьного імені my_shell. Визначається номер індексного дескриптора каталогу /bin/my_shell (у нашому випадку – 25).

  4. Зчитується індексний дескриптор: 25, визначається фізична адреса /bin/my_shell.

  5. Проглядається каталог /bin/my_shell, визначається номер індексного дескриптора файлу print (у нашому випадку – 131).

  6. З індексного дескриптора 131 визначаються номери блоків даних, а також інші характеристики файлу /bin/my_shell/print.

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

Фізична організація файлової системи ufs відрізняється від описаної фізичної організації файлової системи s5 тим, що розділ складається з повторюваної кілька разів послідовності областей “ завантажник-суперблок-блок групи циліндрів-область індексних дескрипторів” (рис. 15).

Рис. 15. Фізична організація файлової системи ufs

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

Крім того, в ufs імена файлів можуть мати довжину до 255 символів (кодування ASCII, по одному байту на символ), у той час як в s5 довжина ім’я не може перевищувати 14 символів.