Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sam_R_OS.doc
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
5.27 Mб
Скачать

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

Програміст має справу з логічною організацією файлу, представляючи його у вигляді організованих логічних записів. Логічний запис - це найменший елемент даних, яким може оперувати програміст, за умови обміну з зовнішнім пристроєм. Навіть якщо фізичний обмін із пристроєм здійснюється великими одиницями, операційна система забезпечує програмісту доступ до окремого логічного запису. На малюнку 2.33 показані кілька схем логічної організації файлу. Записи можуть бути фіксованої чи перемінної довжини. Вони можуть бути розташовані у файлі послідовно (послідовна організація) чи в складнішому порядку, з використанням, так званих, індексних таблиць, що дозволяють забезпечити швидкий доступ до окремого логічного запису (індексно-послідовна організація). Для ідентифікації запису використовують спеціальне поле запису, назване ключем. У файлових системах ОС UNIX і MS-DOS файл має найпростішу логічну структуру - послідовність однобайтових записів.

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

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

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

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

Популярним способом, що використовують, наприклад, у файловій системі FАТ операційної системи MS-DOS, є використання зв'язного списку індексів. Із кожним блоком пов'язується деякий елемент - індекс. Індекси розташовуються в окремій області диска (у MS-DOS це таблиця FАТ). Якщо певний блок належить деякому файлу, то індекс цього блоку містить номер наступного блоку даного файлу.

Мал. 2.34. Фізична організація файлу: а) - безупинне розміщення; б) - зв'язний список блоків, в) зв'язний список індексів; г) перелік номерів блоків

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

Нарешті, розглянемо завдання фізичного розташування файлу шляхом простого перерахування номерів блоків, що містять цей файл. ОС UNIX використовує варіант даного способу, що дозволяє забезпечити фіксовану довжину адреси, незалежно від розміру файлу. Для збереження адреси файлу, виділено 13-полів. Якщо розмір файлу менший чи дорівнює 10 блокам, то номера цих блоків безпосередньо перераховані в перших десятьох полях адреси. Якщо розмір файлу більший 10 блоків, то наступне 11-е поле містить адресу блоку, у якому можуть бути розташовані ще 128 номерів наступних блоків файлу. Якщо файл більший, ніж 10+128 блоків, то використовують 12-е поле, у якому знаходиться номер блоку, що містить 128 номерів блоків, що містять по 128 номерів блоків даного файлу. І, нарешті, якщо файл більший 10+128+128(128, то використовується останнє 13-е поле для потрійної непрямої адресації, що дозволяє задати адресу файлу, що має розмір максимум 10+ 128 + 128(128+128(128+128)).

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