МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ p>
ОДЕСЬКА ДЕРЖАВНА p>
Академії Холоду p>
курсової роботи з дисципліни "Теорія операційних систем" p>
"організації файлової СИСТЕМ ОПЕРАЦІЙНОЇ СИСТЕМИ os/2 " p>
Виконав студент 323А групи Адамян Аваг. p>
Прийняв викладач Калмикова Катерина Анатоліївна. p>
ОДЕСА p>
1997 p>
Зміст: p>
| Резюме | 3 |
| FAT | 3 |
| HPFS структура тома | 4 |
| Файли та Fnodes | 5 |
| Каталоги | 5 |
| Розширені атрибути | 7 |
| Значення імені | 7 |
| Інстальована файлові системи | 8 |
| Проблеми ефективності | 8 |
| Відмовостійкість | 9 |
| Прикладні програми та HPFS | 10 |
| | |
| Додаток: Структура системи файлів FAT | 11 |
| Додаток: Структура блоку управління файлом | 11 |
| Доповнення: B Tree і B + Tree | 12 |
| Доповнення: Розширений блок керування файлами | 12 |
| Резюме | 13 |
| Список використаної літератури | 14 | p>
Резюме p>
Високоефективна Файлова Система (HPFS) для OS/2 вирішує всепроблеми FAT. HPFS працює за методом пристрої блоку довільногодоступу, і також містить модуль програмного забезпечення, якийтранслює файлові запити з прикладних програм до драйверів пристроїв.
HPFS також є інстальоване файловою системою, яка робитьза можливе звернення до кількох несумісним структурам томи системи OS/2одночасно. Чудова продуктивність досягається завдякивикористання просунутих структур даних, інтелектуального кешування,попереднього читання і відкладеної запису. Дисковий простірвикористовується більш економно завдяки використанню розбиття на сектори.
HPFS також включає значно поліпшену відмовостійкість. Принеобхідності програми використовують розширені атрибути і довгі іменафайлів. p>
Високоефективна Файлова Система (далі HPFS), яка впершез'явилася в OS/2 systemVersion 1. 2, була розроблена Gordon Letwin,головним архітектором операційної системи OS/2. p>
Файлова Система FAT p>
Так звана файлова система FAT використовувалася у всіх версіях
МСДОС і в перших двох випусках OS/2 (версії 1.0 та 1.1), має подвійнеспадщину. Кожний логічний тому має власний FAT, який виконуєдві важливі функції: містить інформацію розподілу для кожного файлу втомі у формі списку зв'язків модулів розподілу (кластерів) і вказує,які модулі розподілу вільні. p>
Коли FAT був винайдений, це було чудове рішення для дисковогоуправління, головним чином тому що гнучкі диски, на яких вінвикористовувався рідко були більшими, ніж кілька Mb. FAT був доситьмалий, щоб перебувати в пам'яті постійно, дуже дозволяв забезпечуватишвидкий довільний доступ до будь-якої частини будь-якого файлу. Коли FAT бувзастосований на жорстких дисках, він став занадто великим для резидентногознаходження в пам'яті і погіршилась продуктивність системи. Крім того,тому що інформація щодо вільного дискового просторурассредотачівалась "впоперек" великої кількості секторів FAT, він бувнепрактичний при розподілі файлового простору, і фрагментація файлустала перешкодою високої ефективності. p>
Крім того, використання щодо великих кластерів на жорсткихдисках призвело до великої кількості невикористаних ділянок, так як всередньому для кожного файлу половина кластеру була витрачена даремно. p>
Обмеження FAT на найменування файлів і каталогів успадковані з
CP/M. Коли Paterson створював 86DOS, однією з його перших цілей булополегшити імпорт з CP/M в його нову операційну систему. А отжеприйняті в CP/M обмеження на імена файлів і розширень перенеслися в
86DOS. P>
Протягом декількох років Microsoft і IBM зробили спробу продовжитижиття файлової системи FAT завдяки зняття обмежень на розміри томи,поліпшенню Стратегія розподілу, кешування імен шляху, і переміщеннятаблиць і буферів у розширену пам'ять. Але вони можуть розцінюватися тількияк тимчасові заходи, тому що файлова система просто не підходила довеликим пристроїв довільного доступу. p>
HPFS вирішує проблеми файлової системи, згадані тут і багатоінші, але вона не є різновидом файлової системи FAT. Архітектура
HPFS почала створюватися як файлова система, яка може використовуватипереваги багатозадачного режиму. p>
HPFS Структура Тома p>
HPFS-томи використовують розмір сектора 512 байтів і мають максимальнийрозмір 2199Gb. HPFS тому має дуже невелику кількість фіксованихструктур. Сектори 015 томи (BootBlock, ім'я томи, 32 біта ID, дисковапрограма початкового завантаження). Початкова завантаження щодо складна (устандартах МСДОС) і може використовувати HPFS в обмеженому режимі p>
Сектора 16 і 17 відомі як SuperBlock і SpareBlock відповідно.
SuperBlock змінюється тільки за допомогою утиліт. Він містить покажчикивільного простору, список поганих блоків, смугу блоку каталогу, ікореневу директорію. Він також містить дату, яка відповідає останньоїперевірці та відновленню утилітою CHKDSK/F. SpareBlock містить різніпрапорці і покажчики які обговорюватимуться пізніше; Він змінюється, хочанечасто, при роботі системи. p>
Залишок диска розділений на 8MB смуги. Кожна смуга має власнийсписок вільного простору, де біти представляють кожен сектор. Біт 0якщо сектор використаний 1 якщо сектор доступний. Списки розміщуються на початкуабо хвості списку. p>
Одна смуга, розміщена в "центрі" диска, називається смугою блокукаталогу й обробляється спеціально. Зверніть увагу, що розмір смугизалежить від поточної реалізації та може змінюватися в більш пізніх версіяхфайлової системи. p>
Файли та Fnodes p>
Кожен каталог або файл у HPFS-томі закріплюється за фундаментальнимоб'єктом файлової системи, званим Fnode (вимовляється "eff node").
Кожен Fnode займає одиночний сектор і містить керуючу інформацію,хронологію доступу, розширені атрибути та списки управління доступом,довжину і перші 15 символів імені, і структуру розподілу. Fnode завждизнаходиться поруч з каталогом або файлом, який він представляє. p>
Структура розподілу в Fnode може приймати кілька форм, узалежно від розміру каталогу або файлів. HPFS переглядає фото яксукупність одного або більше секторів. З прикладної програми це невидно; файл з'являється як безперервний потік байтів. p>
Каталоги p>
Каталоги, подібно до файлів, реєструються в Fnodes. Для кореневоїдиректорії Fnodes знаходиться в SuperBlock. Fnodes для некореневої каталогіввизначаються через входи підкаталогу. p>
Каталоги можуть збільшуватися до будь-якого розміру і складаються з блоківкаталогу 2 КБ, які розподіляються як чотири послідовних секторуна диску. Файлова система робить спробу розподілити блоки каталогу всмузі каталогу, яка розміщується біля "центру" диска. Якщо смугакаталозі повна, блоки каталозі розподіляються там, де є вільнемісце. p>
Кожен блок каталога 2 КБ складається з великої кількості входівкаталогу. Вхід каталозі містить кілька полів, включаючи штампи часу ідати, Fnode покажчик, довжина імені каталогу чи файлу, ім'я безпосередньо,і покажчик. Кожен вхід починається словом, яке містить довжину. P>
Число блоків каталозі і входів-різному при різній довжині імені.
Якщо середня довжина імені файлу 13 символів, середній блок каталогу будемістити приблизно 40 входів. Блоки каталозі входів сортуються вдвійковому лексичному порядку по полях імені в алфавітному порядку дляалфавіту США. Останній блок каталога входу - запис, який відзначаєкінець блоку. p>
Коли каталог отримує занадто великий, що потрібно зберегтив одному блоці, він збільшує розмір додаванням блоків 2 КБ, якіорганізовуються як B-Tree [1]. При пошуку файлова система витягує покажчик
B-Tree з входу. Якщо це не вказівник, то пошук невдалий; інакше файловасистема слідує за вказівником в наступний каталог і продовжує пошук. p>
Невелика арифметика дає значну статистику. При використання
40 входів на блок, блоки каталозі дерева з двома рівнями можуть містити
1640 входів, каталогу і дерева з трьома рівнями можуть містити наздивування 65640 входів. Іншими словами, деякий файл може бути знайдений втиповому каталозі з 65640 файлів максимум за три звернення. Це набагатокраще файлової системи FAT, де у найгіршому випадку більш ніж 4000секторів потрібно прочитати для знаходження файлу. p>
Структура каталозі B-Tree має цікаві імплікації. Створенняфайлу, перейменування або стирання може призводити до каскадування блоківкаталогів. Фактично, перейменування може зазнати невдач черезнестачі дискового простору, навіть якщо файл безпосередньо врозмірах не збільшився. Щоб уникнути цього "лиха", HPFS підтримуємаленький пул вільних блоків, які можуть використовуватися при "аварії"; p>
Покажчик на цей пул вільних блоків зберігається в SpareBlock. p>
Розширені Атрибути p>
Атрибути файлу - інформація про фото. FAT підтримує тількиневелика кількість простих атрибутів (доступний тільки для читання,системний, прихований, архів), які фактично зберігаються як прапорці бітана вході каталозі файлу; ці атрибути не доступні, якщо файл відкритий. p>
HPFS підтримує ті ж самі атрибути, що і файлова система FAT поісторичних причин, але він також підтримує і нову формуfileassociated, тобто інформацію, яка називається Розширеними Атрибутами
(EAs). Кожен EA концептуально подібний до змінної оточення. P>
Значення імені p>
У OS/2 1.2 кожен каталог або файл може мати максимум 64 КБприєднаних EAs. Це обмеження знімається в більш пізніх версіях OS/2. P>
Метод зберігання для EAs може змінюватися. Якщо одиночний EA стаєнадто великим, він може міститися в квартирі Fnode. p>
Ядро API функції DosQFileInfo і DosSetFileInfo розширено новимиінформаційними рівнями, які дозволяють прикладним програмам керуватирозширеними атрибутами файлів. Нові функції DosQPathInfo і DosSetPathInfoвикористовуються для читання чи запису EAs, пов'язаних з довільними іменамишляху. p>
Підтримка EAs є суттєвим компонентом в об'єктно --орієнтованих файлових системах. Інформація про майже будь-якому типі можезберігатися в EAs. Так як HPFS розвивається, засоби для керування EAsстають ще більш складним. p>
Можна припустити, наприклад, що в майбутньому версії API можутьрозширюватися функціями EA, які є аналогічним DosFindFirst і
DosFindNext і EA - дані можуть бути організовані в B-Tree. P>
Інстальована Файлові Системи p>
Підтримка для інстальоване файлової системи є дуже цінноюособливістю OS/2. Вона дає можливість звертатися до численнихнесумісним томам структур FAT, HPFS, CD ROM, і UNIX. Система OS/2спрощує життя і відкриває шлях швидкому розвитку файлових систем інововведень. Інстальована файлові системи, однак, доречні по відношеннюдо HPFS, оскільки вони використовують HPFS факультативно. Файлова система FATвкладена в ядро OS/2 і буде залишатися там як файлова системасумісності протягом деякого часу. p>
Драйвер інстальоване файлової системи (FSD) аналогічний драйверампристроїв. FSD постійно знаходиться на диск як структурний файл, якийє подібним бібліотеці динамічних компонувань (DLL). Зазвичай цейфайл має системне розширення, і завантажується під час ініціалізаціїсистеми з файлу CONFIG. SYS. P>
Коли FSD встановлений і ініціалізований, ядро передає йому логічнізапити на відкриття, читання, запис, пошук, закриття, і так далі. FSDтранслює ці керуючі запити в запити на сектор читання чи запису. p>
Проблеми ефективності p>
Тут розглянемо лише частина методик підвищення ефективності.
Наприклад, коли файл відкривається, файлова система прочитає і кеш Fnode іперша невелика кількість секторів змісту файлу. Якщо інформаціяхронології в Fnode файлу здійсненним програми показує, що операціявідкриття зазвичай супроводжується безпосереднім послідовним читаннямвсього файлу, файлова система буде читати в кеш ще більше змістуфайлу. p>
На закінчення, підтримка операційної системи OS/+2 для багатозадачногорежиму робить можливим для HPFS "ледачі записи" (іноді званийвідстроченими записами або запис позаду) для покращення ефективності. p>
Відмовостійкість p>
Первинний механізм для корекції помилок запису називається hotfix.
Якщо виявлено помилку, файлова система бере вільний блок позарезервного пулу hotfix, записує дані в цей блок, і модифікує картуhotfix. (Карта hotfix являє собою подвійні слова, що містять номерпоганого сектора пов'язаний з номером заміни. Покажчик на hotfix знаходиться в
SpareBlock). Видається попереджувальне повідомлення, і користувач знає,що все добре не з дисковим пристроєм. p>
Кожного разу коли файлова система запитує сектор, дисковийдрайвер переглядає карту hotfix і заміняє будь погані номери секторівна відповідні хороші. p>
CHKDSK звільняє карту hotfix. Він додає поганий сектор до спискупоганих блоків, випускає сектор заміни назад в пул hotfix, видаляє hotfixвхід з карти hotfix, і записує модифікований hotfix. p>
HPFS захищає себе від користувачів, дуже люблять
Красний_Переключатель і підтримує прапорець Dirty FS, позначаються в
SpareBlock кожен HPFS тому. Прапорець очищається тільки коли всі файли на томізакрилися і всі буферізованние в кеші дані були записані. p>
Протягом завантаження OS/2, файлова система оглядає DirtyFS і, якщопрапорець встановлений, не буде дозволяти подальший доступ до тому до тих пір,CHKDSK поки не закінчить роботу. Якщо прапорець DirtyFS встановлений на томіпочаткового завантаження, система не буде завантажена; користувач повинензавантажувати OS/2 в режимі з дискети і виконати CHKDSK для перевірки іможливо ремонту томи початкового завантаження. p>
При втраті SuperBlock або кореневої директорії, HPFS має можливістьуспішно відновити їх. Кожен тип, що визначає файл, включаючи об'єкт
Fnodes, сектори розподілу, і каталоги блоків компонуються так, що іхазяїн і дочірні запису і містить унікальну сигнатуру з 32 бітами.
Fnodes також містять початкову частину імені каталогу або файлів.
Отже, CHKDSK може відновити весь тому методом перегляд дискадля Fnodes, секторів розподілу, і блоки каталогу, використавши їх длявідновлення файлів, каталогів і freespace - списків. p>
Прикладні Програми та HPFS p>
Нові функції API, DosCopy допомагають прикладним програмам створюватикопії, по суті дублюючи існуючий файл разом з EAs. EAs може такожуправлятися явно з DosQFileInfo, DosSetFileInfo, DosQPathInfo, і
DosSetPathInfo. P>
Інші зміни в API не будуть впливати на середню прикладнупрограму. Опції DosQFileInfo, DosFindFirst, і DosFindNext. P>
DosQFsInfo використовується для отримання мітки тому або дисковиххарактеристик точно як колись, і використання DosSetFsInfo для міток томине змінюється. Є a небагато повністю нові функції API типу DosFsCtl
(аналогічний DosDev IOCtl але використовується для зв'язку між прикладноїпрограмою і FSD), і DosQFsAttach (визначає, який FSD має том); вонипризначаються головним чином для використання дисковими сервіснимипрограмами. p>
Додатки p>
Структура системи файлів FAT
| 00Н | 01н | Ідентифікатор дисководу |
| 01н | 09Н | Файл (8 символів) |
| 09Н | 0СН | Розширення (3 символи) |
| 0СН | 0ЕН | Номер поточного блоку |
| 0ЕН | 10Н | Размер записи |
| 10Н | 14Н | Размер файла |
| 14Н | 16Н | Дата створення (оновлення) |
| 16Н | 18Н | Час створення (оновлення) |
| 18Н | 20Н | Зарезервовано |
| 20Н | 21Н | Номер поточного запису |
| 21Н | 25Н | Номер відносної записи | p>
B Tree і B + Tree p>
Багато програмістів не знайомі із структурою даних, відомої якдвійкове дерево. Двійкові дерева це методика для логічногоупорядкування сукупності елементів даних. p>
У простому двійковому дереві кожний вузол містить деякі дані,включаючи значення ключа, що визначає логічну позицію вузла вдереві, і покажчики на ліві і праві піддерев вузла. Вузол якийпочинає дерево відомий як корінь; вузли які сидять на кінці гілкидерева іноді називаються відходами. p>
Такі прості двійкові дерева, хоча прості в розумінні і застосуванні,мають недоліки (незручності), виявлені практикою. Якщо ключірозподіляються не оптимально або додаються до дерева у мимовільномурежимі, дерево може ставати зовсім асиметричним, що призводить довеликим відмінностей між часом обходу дерева. p>
Тому велика кількість програмістів воліють у використаннізбалансовані дерева відомі як B-Tree.
| 00Н | 01н | 0FFH |
| 01н | 06Н | Зарезервовано |
| 06Н | 07Н | Байт атрибута |
| 07Н | 08Н | Ідентифікатор дисководу |
| 08Н | 10Н | Файл (8 символів) |
| 10Н | 13Н | Розширення (3 символи) |
| 13Н | 15Н | Номер поточного блоку |
| 15Н | 17Н | Размер записи |
| 17Н | 1ВН | Розмір файлу |
| 1BН | 1DН | Дата створення (оновлення) |
| 1DН | 1FН | Час створення (он?? тичних) |
| 1FН | 27H | Зарезервовано |
| 27H | 28H | Номер поточного запису |
| 28H | 2CH | Номер відносної записи | p>
Резюме p>
Резюме. P>
HPFS вирішує всі історичні проблеми файлової системи FAT. Віндосягає чудової продуктивності навіть при екстремальних ситуаціях,наприклад коли дуже маленькі файли і їх дуже багато чи мало дужевеликі файли. Це свідчить про продуманих структурах даних іпереваги техніки типу інтелектуального кешування, попередньогочитання, відкладеної запису. Дисковий простір використовується економно.
Існуючі прикладні програми потребують модифікації для використанняпереваг підтримки HPFS для розширених атрибутів і довгих імен файлів,але ці зміни не складні. Всі прикладні програми будуть отримувати користьз високої ефективності HPFS і зменшеною завантаження CPU. p>
Список використаної літератури: p>
1. Microsoft Systems Journal, Sept 1989. Отримано з Computer Library
Periodicals, Jan 1990, Doc # 14753
2. OS/2 Warp, К. Данильченко, BHV Київ, 1995
3. Професійна робота в MS-DOS, Р. Данкан, Світ, 1993 p>
-----------------------< br>[1] Про двійкових деревах B-Tree дивись в додатку p>
----------------------- p>
Файл Д p>
Файл В p>
Файл Б p>
Каталог p>
Файл Г p>
Каталог p>
Каталог p>
Файл А p>
Ідентифікатор дисковода p>
Кореневий каталог p>
(мітка тому) p>
Типовий блок керування файлом p>
Елементи структури p>
Відносний кінцевий адреса в байтах p>
Відносний початковий адреса в байтах p>
Розширений блок керування файлом p> < p> Відносний початковий адреса в байтах p>
Елементи структури p>
Відносний кінцевий адреса в байтах p>