русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Структура індексних дескрипторів


Дата додавання: 2013-12-23; переглядів: 1389.


Основною проблемою є підбір розміру і завдання оптимальної структури індексного дескриптора, оскільки:

· З одного боку, зменшення розміру дескриптора може значно зекономити дисковий простір і пам'ять (дескрипторів потрібно створювати значу кількість – по одному на кожний файл, разом вони можуть займати досить багато місця на диску, крім того, для кожного відкритого файла дескриптор буде розташовано в оперативній пам’яті)

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

Одне з компромісних розв’язань цієї задачі, яке застосовується вже багато років у UNIX – системах, зображене на рис 1.5. Під час його опису замість терміна «кластер» вживатимемо його синонім «дисковий блок».

У цьому разі індексний дескриптор містить елементи різного призначення:

· Частина елементів (зазвичай перші 12) безпосередньо вказує на дискові блоки, які називають прямими. Отже, якщо файл може вміститися у 12 дискових блоках (максимальний розмір такого файла = 49152 байти), уся ці блоки будуть прямо адресовані його індексним дескриптором і жодних додаткових структур даних не буде потрібно.

· Якщо файлу необхідно для розміщення даних більше ніж 12 дискових блоків, використовують непряму адресацію першого рівня. У цьому разі 13-й елемент індексного дескриптора вказує не на блок із даними, а на спеціальний непрямий блок першого рівня. Він містить масив адрес наступних блоків файла (максимальний розмір файла буде = 4 234 456 байт).

· Якщо файлу потрібно для розміщення більше ніж 1024+12 = 1036 дискових блоків, використовують непряму адресацію другого рівня. 14-й елемент індексного дескриптора в цьому разі вказуватиме на непрямий блок другого рівня. Такий блок містить масив з 1024 адрес непрямих блоків першого рівня, кожен із них, як зазначалося, містить масив адрес дискових блоків файла. Тому за допомогою такого блоку можна адресувати 102 додаткових блоків.

· Нарешті, якщо файлу потрібно більше ніж 1036 + дискових блоків, використовують непряму адресацію третього рівня. Останній 15-й елемент індексного дескриптора вказуватиме на непрямий блок третього рівня, що містить масив з 1024 адрес непрямих блоків другого рівня даючи змогу адресувати додатково дискових блоків.

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

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

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


<== попередня лекція | наступна лекція ==>
Індексоване розміщення файлів | Організація каталогів


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн