Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lek №16.doc
Скачиваний:
5
Добавлен:
06.05.2019
Размер:
1.11 Mб
Скачать

3. Логічна організація дисків. Файлові системи. Організація файлів

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

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

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

Модель файлу, відповідно до якої вміст файлу представляється неструктурованою послідовністю (потоком) байт, стала популярною разом з ОС UNIX, а тепер вона широко використовується в більшості сучасних ОС (MS-DOS, Windows2000/NT, NetWare).

Неструктурована модель файлу дозволяє легко організувати поділ файлу між кількома додатками: різні програми можуть по-своєму структурувати і інтерпретувати дані, що містяться в файлі.

Інша модель файлів, яка застосовувалася в ОС OS/360, DEC RSX, VMS, а в даний час використовується досить рідко - це структурований файл. В цьому випадку підтримку структури файлу доручається ОС. ФС бачить файл як упорядковану послідовність логічних записів. Додаток може звертатися до ФС з запитами на введення-виведення на рівні записів, наприклад, «вважати запис 25 з файлу FILE.DOC». ФС повинна володіти інформацією про структуру файлу, достатньої для того, щоб виділити будь-який запис. ФС надає додатком доступ до запису, а вся подальша обробка даних, що міститься в цьому записі, виконується додатком. Зауваження. Розвитком цього підходу стали СУБД.

Способи фізичної організації файлу

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

Швидкість доступу до даних.

Обсяг адресної інформації файлу.

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

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

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

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

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

Розміщення файлу в вигляді пов'язаного списку кластерів дискової пам'яті.

При такому способі на початку кожного кластера міститься покажчик на наступний кластер:

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

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

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

Використання пов'язаного списку індексів (наприклад, в FAT)

Даний спосіб є модифікацією попереднього методу. Файлу також виділяється пам'ять у вигляді пов'язаного списку кластерів. Номер першого кластера запам'ятовується в записі каталогу, де зберігаються характеристики цього файлу. Решта адресна інформація відокремлена від кластерів файлу. З кожним кластером диска пов'язаний індекс. Індекси розташовуються в окремій області диска - у файлових системах FAT це таблиця (File Allocation Table):

Коли пам'ять вільна, всі індекси мають нульове значення. Якщо певний кластер N призначений деякому файлу, то індекс цього кластеру стає рівним або номеру M наступного кластера даного файлу, або приймає спеціальне значення - ознака того, що цей кластер є для файлу останнім. Індекс же попереднього кластера файла приймає значення N, вказуючи на новопризначений кластер.

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

Перерахування номерів кластерів, займаних цим файлом.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]