ТОП 10:

Логічна організація файлових систем



 

Структури файлів і файлових систем

Організація файлової системи

Атрибути файлів

Операції над файлами і каталогами

Міжпроцесова взаємодія у файловій системі

 

Файлові системи можна розглядати на двох рівнях: логічному і фізичному. Ло­гічний визначає відображення файлової системи, призначене для прикладних про­грам і користувачів, фізичний — особливості розташування структур даних систе­ми на диску й алгоритми, які використовують під час доступу до інформації.

У цьому розділі зупинимося на логічному відображенні і програмному інтер­фейсі файлової системи, а в наступному — на її фізичній реалізації.

 

 

11.1. Поняття файла і файлової системи

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

 

11.1.1. Поняття файла

Файл — це набір даних, до якого можна звертатися за іменем. Файли організовані у файлові системи. З погляду користувача файл є мінімальним обсягом даних файлової системи, з яким можна працювати незалежно. Наприклад, користувач не може зберегти дані на зовнішньому носії, не звернувшися при цьому до файла. Розглянемо особливості використання файлів.

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

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

 

11.1.2.Поняття файлової системи

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

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

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

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

 

11.1.3.Типи файлів

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

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

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

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

11.1.4. Імена файлів

Важливою складовою роботи із файлами є організація доступу до них за іменем.

Різні системи висувають різні вимоги до імен файлів. Так, у деяких системах імена є чутливими до регістра (myfile.txt і MYFILE.TXT будуть різними іменами), а в інших — ні.

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

Важливою характеристикою файлової системи є максимальна довжина імені файла. У минулому багато ОС різним чином обмежували довжину імен файлів. Широко відоме було обмеження на 8 символів у імені файла і 3 — у розширенні, присутнє у файловій системі FAT до появи Windows 95. Сьогодні стандартним значенням максимальної довжини імені файла є 255 символів.

 

11.2. Організація інформації у файловій системі

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

 

 

11.2.1. Розділи

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

Розділ (partition) - частина фізичного дискового простору, що призначена для розміщення на ній структури однієї файлової системи і з логічної точки зору розглядається як єдине ціле.

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

Кожний розділ може мати свою файлову систему (і, можливо, використовува­тися різними ОС). Для поділу дискового простору на розділи використовують спеціальну утиліту, яку часто називають fdisk. Для генерації файлової системи

на розділі потрібно використати операцію високорівневого форматування диска. У деяких ОС під томом (volume) розуміють розділ із встановленою на ньому файловою системою.

Реалізація розділів дає змогу відокремити логічне відображення дискового простору від фізичного і підвищує гнучкість використання файлових систем.

 

Каталоги

Розділи є основою організації великих обсягів дискового простору для розгор­тання файлових систем. Для організації файлів у рамках розділу зі встановленою файловою системою було запропоновано поняття файлового каталогу (file direc­tory) або просто каталогу.

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

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

Деревоподібна структура каталогів

Базовою ідеєю організації даних за допомогою каталогів є те, що вони можуть містити інші каталоги. Вкладені каталоги називають підкаталогами (subdirecto­ries). Таким чином формують дерево каталогів. Перший каталог, створений у фай­ловій системі, встановленій у розділі (корінь дерева каталогів), називають коре­невим каталогом (root directory).

Поняття шляху

Розглянемо, яким чином формують ім'я файла з урахуванням багаторівневої струк­тури каталогів.

Для файла, розташованого всередині каталогу недостатньо його імені для од­нозначного визначення, де він перебуває, - в іншому каталозі може бути файл із тим самим ім'ям. Тепер для визначення місцезнаходження файла потрібно дода­вати до його імені список каталогів, де він перебуває. Такий список називають шляхом (path). Каталоги у шляху перераховують зліва направо - від меншої гли­бини вкладеності до більшої. Роздільник каталогів у шляху відрізняється для різних систем: в UNIX прийнято використовувати прямий слеш «/», а у Win­dows-системах — зворотний «\».

Абсолютний і відносний шляхи

Є два шляхи до файла: абсолютний і відносний. Абсолютний (або повний) повні­стю й однозначно визначає місце розташування файла. Такий шлях обов'язково має містити кореневий каталог. Ось приклад абсолютного шляху для UNIX-сис­тем: /usr/local/bin/myfile.

Якщо застосування використовує тільки абсолютні шляхи, йому зазвичай бра­кує гнучкості. Наприклад, у разі перенесення в інший каталог потрібно буде вруч­ну відредагувати всі шляхи, замінивши їх новими.

Відносний — шлях, відлічуваний від деякого місця в ієрархії каталогів. Щоб його організувати, потрібно визначитися із точкою відліку, для чого використо­вують поняття поточного каталогу. Такий каталог задають для кожного процесу, і він може бути змінений у будь-який момент командою cd або системним викли­ком chdi г(). Відносний шлях може відлічуватися від поточного каталогу і звичайно кореневий каталог не включає. Прикладом відносного шляху до файла /usr/ local /bin/myfile (за умови, що поточним каталогом є /usr/local) буде bin/myfile, а в ситуа­ції, коли поточним є каталог файла (/usr/local/bin), відносним шляхом буде просто ім'я файла: myfile.

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

♦ «.», що посилається на поточний каталог;

♦ «..», що посилається на каталог рівнем вище.

З урахуванням цих елементів можуть бути задані такі відносні шляхи, як ../../bin/myfile (за умови, що поточний каталог - /usr/local/lib/mylib) або ./myfile (вка­зує на елемент у поточному каталозі).

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

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

 







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

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