Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Поняття файлу

Файлова система EXT4

Журнальована файлова система, що використовується в ОС з ядром Linux. Заснована на файловій системі ext3, котра є файловою системою за замовчуванням в багатьох дистрибутивах Linux.

Головною особливістю стало збільшення максимального обсягу одного розділу до 1ексабайта (260 байт) при розмірі блоку 4Kb. Крім того, в EXT4 представлений механізм просторового запису файлів (нова інформація додається в кінець попередньо виділеної по сусідству області файла), що зменшує фрагментацію і збільшує продуктивність.

Особливості:

  • розмір файла до 16 ТБ.
  • розмір файлової системи до 1024 ПБ.
  • дозволені символи всі крім NUL та '/'.
  • межі дат 14 грудня 1901 - 25 квітня 2514.
  • мінімальна зміна часу - наносекунда.
  • максимум файлів - 4 мільярда (задається під-час створення ФС).

 

 

 

 

РОЗДІЛ 2 ОРГАНІЗАЦІЯ ФАЙЛОВОЇ СИСТЕМИ

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

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

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

2.2 Типи файлів

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

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

Більшість сучасних операційних систем (наприклад, UNIX, Windows, OS/2) ніяк не обмежують і не контролюють вміст і структуру звичайного файлу. Зміст звичайного файлу визначається додатком, який з ним працює. Наприклад, текстовий редактор створює текстові файли, що складаються з рядків символів, представлених в якому-небудь коді. Це можуть бути документи, початкові тексти програм і т.д. Текстові файли можна прочитати на екрані і роздрукувати на принтері. Двійкові файли не використовують коди символів, вони часто мають складну внутрішню структуру, наприклад виконуваний код програми або архівний файл. Всі операційні системи повинні уміти розпізнавати хоча б один тип файлів — їх власні виконувані файли.

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

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

2.3 Імена файлів

Всі типи файлів мають символьні імена. У ієрархічно організованих файлових системах зазвичай використовуються три типи імен файлів: прості, складені і відносні.

Просте, або коротке, символьне ім’я ідентифікує файл в межах одного каталогу. Прості імена привласнюють файлам користувачі і програмісти, при цьому вони повинні враховувати обмеження ОС як на номенклатуру символів, так і на довжину імені. До порівняно недавнього часу ці межі були вельми вузькими. Так, в популярній файловій системі FAT довжина імен обмежувалися схемою 8.3 (8 символів — власне ім’я, 3 символи — розширення імені), а у файловій системі s5, підтримуваною багатьма версіями ОС UNIX, просте символьне ім’я не могло містити більше 14 символів. Проте користувачеві набагато зручніше працювати з довгими іменами, оскільки вони дозволяють дати файлам назви, що легко запам’ятовуються, ясно говорять про те, що міститься в цьому файлі. Тому сучасні файлові системи, як правило, підтримують довгі прості символьні імена файлів.

У ієрархічних файлових системах різним файлам дозволено мати однакові прості символьні імена за умови, що вони належать різним каталогам. Тобто тут працює схема «багато файлів — одне просте ім’я».

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

Повне ім’я є ланцюжком простих символьних імен всіх каталогів, через які проходить шлях від кореня до даного файлу. Таким чином, повне ім’я єскладеним, в якому прості імена відокремлені один від одного прийнятим в ОС роздільником. Часто як роздільник використовується пряма або зворотна коса риска (слеш), при цьому прийнято не указувати ім’я кореневого каталогу. На (мал. 3, б)
два файли мають просте ім’я main.exe, проте їх складені імена /program/main.ехе і /user/andrew/main.ехе розрізняються.

У деревовидній файловій системі між файлом і його повним ім’ям є взаємно однозначна відповідність «один файлодне повне ім’я». У файлових системах, що мають мережеву структуру, файл може входити в декілька каталогів, а значить, мати декілька повних імен; тут справедлива відповідність «один файлбагато повних імен. У обох випадках файл однозначно ідентифікується повним ім’ям.

Файл може бути ідентифікований також відносним ім’ям. Відносне ім’я файлу визначається через поняття «Поточний каталог». Для кожного користувача в кожен момент часу один з каталогів файлової системи є поточним, причому цей каталог вибирається самим користувачем по команді ОС. Файлова система фіксує ім’я поточного каталогу, щоб потім використовувати його як доповнення до відносних імен для утворення повного імені файлу. При використанні відносних імен користувач ідентифікує файл ланцюжком імен каталогів, через які проходить маршрут від поточного каталогу до даного файлу. Наприклад, якщо поточним каталогом є каталог /user, то відносне ім’я файлу /user/andrew/main.ехе виглядає таким чином: andrew/main.exe.

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

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

 

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

Поняття «файл» включає не тільки що зберігаються їм дані і ім’я, але і атрибути. Атрибути — це інформація, що описує властивості файлу. Приклади можливих атрибутів файлу:

§ тип файлу (звичайний файл, каталог, спеціальний файл і т. д.);

§ власник файлу;

§ творець файлу;

§ пароль для доступу до файлу;

§ інформація про дозволені операції доступу до файлу;

§ час створення, останнього доступу і останньої зміни;

§ поточний розмір файлу;

§ максимальний розмір файлу;

§ ознака «тільки для читання;

§ ознака «прихований файл»;

§ ознака «системний файл»;

§ ознака «архівний файл»;

§ ознака «двійковий/символьний»;

§ ознака «тимчасова» (видалити після завершення процесу);

§ ознака блокування;

§ довжина запису у файлі;

§ покажчик на ключове поле в записі;

§ довжина ключа.

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

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

Значення атрибутів файлів можуть безпосередньо міститися в каталогах, як це зроблено у файловій системі MS-DOS (мал. 4, а).
Іншим варіантом є розміщення атрибутів в спеціальних таблицях, коли в каталогах містяться тільки посилання на ці таблиці. Такий підхід реалізований, наприклад, у файловій системі ufs ОС UNIX.

У цій файловій системі структура каталогу дуже проста. Запис про кожен файл містить коротке символьне ім’я файлу і покажчик на індексний дескриптор файлу, так називається в ufs таблиця, в якій зосереджені значення атрибутів файлу (мал. 4, б).

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

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

  • створення файлу
  • знищення файлу
  • відкриття файлу
  • закриття файлу
  • читання файлу
  • запис у файл
  • доповнення файлу
  • пошук у файлі
  • отримання атрибутів файлу
  • встановлення нових значень атрибутів
  • перейменування
  • виконання файлу
  • читання каталогу

та інші операції з файлами і каталогами.

Розрізняють два основні підходи до визначення прав доступу:

 

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

2.6 Логічна організація файлу

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

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

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

Файлова система може використовувати два способи доступу до логічних записів: читати або записувати логічні записи послідовно (послідовний доступ) або позиціонувати файл на запис з вказаним номером (прямий доступ).

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

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

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

Файли, доступ до записів яких здійснюється послідовно, по номерах позицій, називаються послідовними.

 

Індекс           Індексключ
Адреса          
             

Рис. 3. Способи логічної організації файлів

 

Іншим типом файлів є індексовані файли, вони допускають швидший прямий доступ до окремого логічного запису.

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

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

Все вищесказане більшою мірою відноситься до звичайних файлів, які можуть бути як структурованими, так і неструктурованими. Що ж до інших типів файлів, то вони володіють певною структурою, відомій файловій системі. Наприклад, файлова система повинна розуміти структуру даних, що зберігаються у файлі-каталозі або файлі типу «символьний зв’язок».

2.7 Загальна модель файлової системи

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

У широкому значенні поняття “файлова система” включає:

§ сукупність всіх файлів на диску,

§ набори структур даних, використовуваних для управління файлами, такі, наприклад, як каталоги файлів, дескриптори файлів, таблиці розподілу вільного і зайнятого простору на диску,

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

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

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

Завдання, що вирішуються файловою системою, залежать від способу організації обчислювального процесу в цілому. Найпростіший тип — це файлова система в однокористувацьких і однопрограмних ОС, до яких належить, наприклад, MS-DOS. Основні функції такої файловій системі націлені на рішення наступних задач:

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

Завдання файлової системи ускладнюються в операційних однокористувацьких мультипрограмних ОС, які, хоч і призначені для роботи одного але дають йому можливість запускати декілька процесів одночасно. Однією з перших ОС цього типу стала OS/2. До перерахованих вище завдань додається нове завдання сумісного доступу до файлу з декількох процесів. Файл в цьому випадку є ресурсом, що розділяється, а значить, файлова система повинна вирішувати весь комплекс проблем, пов’язаних з такими ресурсами. Зокрема, у ФС повинні бути передбачені засоби блокування файлу і його частин, запобігання гонкам, виключення безвиході, узгодження копій і т.д.

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

Ще складнішими стають функції файлової системи, яка працює у складі мережевої ОС.

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

 

Рис.4. Загальна модель файлової системи (на прикладі FAT32)

Задачею символьного рівня є визначення по символьному імені файлу його унікального імені. У файлових системах, в яких кожен файл може мати тільки одне символьне ім’я (наприклад, MS-DOS), цей рівень відсутній, оскільки символьне ім’я, привласнене файлу користувачем, є одночасно унікальним і може бути використане операційною системою. У інших файлових системах, в яких один і той же файл може мати декілька символьних імен, на даному рівні є видимим ланцюжок каталогів для визначення унікального імені файлу. У файловій системі UNIX, наприклад, унікальним ім’ям є номер індексного дескриптора файлу (i-node).

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

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

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

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

Початкові дані:

V – розмір блоку

N – номер першого блоку файлу

S – зсув логічного запису у файлі

Вимагається визначити на фізичному рівні:

n – номер блоку, що містить необхідний логічний запис

s – зсув логічного запису в межах блоку

n = N + [S/V], де [S/V] – ціла частина числа S/V

s = R [S/V] – дробова частина числа S/V

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

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

2.8 Ієрархічна структура файлової системи

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

 

Мал. 3 Ієрархія файлових систем
а) – однорівнева; б) – ієрархічна (дерево);
в) – ієрархічна (мережа)

 

Граф, що описує ієрархію каталогів, може бути деревом або мережею. Каталоги утворюють дерево, якщо файлу дозволено входити тільки в один каталог (мал. 3, б), і мережу — якщо файл може входити відразу в декілька каталогів (мал. 3, в).
Наприклад, в MS-DOS і Windows каталоги утворюють деревовидну структуру, а в UNIX — мережеву. У деревовидній структурі кожен файл є листом. Каталог самого верхнього рівня називається кореневим каталогом, або коренем (root). При такій організації користувач звільнений від запам’ятовування імен всіх файлів, йому досить приблизно уявляти, до якої групи може бути віднесений той або інший файл, щоб шляхом послідовного перегляду каталогів знайти його. Ієрархічна структура зручна для роботи розрахованої на багато користувачів: кожен користувач з своїми файлами локалізується в своєму каталозі або дереві підкаталогів, і разом з тим всі файли в системі логічно зв’язані.

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

 

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

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

3.0 Диски, розділи, сектори, кластери

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

На кожній стороні кожної пластини розмічені тонкі концентричні кільця — доріжки (traks), на яких зберігаються дані. Кількість доріжок залежить від типу диска. Нумерація доріжок починається з 0 від зовнішнього краю до центру диска. Коли диск обертається, елемент, званий головкою, прочитує двійкові дані з магнітної доріжки або записує їх на магнітну доріжку.

 

Рис. 7. Схема пристрою жорсткого диска

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

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

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

 

Мал. 8. Читання надмірних даних при обміні з диском

Операційна система при роботі з диском використовує, як правило, власну одиницю дискового простору, звану кластером (cluster). При створенні файлу місце на диску йому виділяється кластерами. Наприклад, якщо файл має розмір 2560 байт, а розмір кластера у файловій системі визначений в 1024 байти, то файлу буде виділено на диску 3 кластери.

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

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

Перш ніж форматувати диск під певну файлову систему, він може бути розбитий на розділи. Розділ — це безперервна частина фізичного диска, яку операційна система представляє користувачеві як логічний пристрій (використовуються також назви логічний диск і логічний розділ. Логічний пристрій функціонує так, як якби це був окремий фізичний диск. Саме з логічними пристроями працює користувач, звертаючись до них по символьних іменах, використовуючи, наприклад, позначення А, В, С і т. д. Операційні системи різного типу використовують єдине для всіх них уявлення про розділи, але створюють на його основі логічні пристрої, специфічні для кожного типу ОС. Так само як файлова система, з якою працює одна ОС, в загальному випадку не може інтерпретуватися ОС іншого типу, логічні пристрої не можуть бути використані операційними системами різного типу. На кожному логічному пристрої може створюватися тільки одна файлова система.

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

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

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

3.2 Фізична організація і адресація файлу

Важливим компонентом фізичної організації файлової системи є фізична організація файлу, тобто спосіб розміщення файлу на диску. Основними критеріями ефективності фізичної організації файлів є:

§ швидкість доступу до даним;

§ об’єм адресної інформації файлу;

§ ступінь фрагментованості дискового простору;

§ максимально можливий розмір файлу.

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

Через деякий час після створення файлової системи в результаті виконання численних операцій створення і видалення файлів простір диска неминуче перетворюється на «клаптеву ковдру», що включає велике число вільних областей невеликого розміру. Як завжди буває при фрагментації, сумарний об’єм вільної пам’яті може бути дуже великим, а вибрати місце для розміщення файлу цілком неможливо.

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

 

Популярним способом, вживаним, наприклад, у файловій системі FAT, є використання зв’язаного списку індексів (мал. 9, в). Цей спосіб є деякою модифікацією попереднього. Файлу також виділяється пам’ять у вигляді зв’язаного списку кластерів. Номер першого кластера запам’ятовується в записі каталогу, де зберігаються характеристики цього файлу. Решта адресної інформації відокремлена від кластерів файлу. З кожним кластером диска зв’язується деякий елемент — індекс. Індекси розташовуються в окремій області диска — в MS-DOS це таблиця FAT(File Allocation Table), що займає один кластер. Коли пам’ять вільна, всі індекси мають нульове значення. Якщо деякий кластер N призначений деякому файлу, то індекс цього кластера стає рівним або номеру М наступного кластера даного файлу, або приймає спеціальне значення, що є ознакою того, що цей кластер є для файлу останнім. Індекс же попереднього кластера файлу приймає значення N, указуючи на новопризначений кластер.

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

Ще один спосіб завдання фізичного розташування файлу полягає в простому перерахуванні номерів кластерів, займаних цим файлом (мал. 9,г). Цей перелік і служить адресою файлу. Недолік даного способу очевидний довжина адреси залежить від розміру файлу і для великого файлу може скласти значну величину. Гідністю ж є висока швидкість доступу до довільного кластера файлу, оскільки тут застосовується пряма адресація яка виключає переглядання ланцюжка покажчиків при пошуку адреси довільного кластера файлу. Фрагментація на рівні кластерів в цьому способі також відсутня.

ВИСНОВКИ

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


 

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Олифер В. Г., Олифер Н. А. / Сетевые операционные системы. — СПб.: Питер, 2003. — 539 с.: ил.

2. Робачевский Андрей. / Операционная система UNIX. — BHV, 1999.

3. THE DESIGN OF THE UNIX OPERATING SYSTEM by Maurice J. Bach (ПерекладзанглійськоїКрюковаА. В.)

 

 




Поделиться с друзьями:


Дата добавления: 2017-01-13; Просмотров: 140; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.