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

Мал. 6.34. І-вузол файлової системи unix v7.

Мал. 6. 35. Етапи пошуку файлу /usr/ast/mbox

Відносні шляхи файлів обробляються так само, як і абсолютні, з тією різницею, що алгоритм починає роботу не з кореневого, а з робочого каталогу. У кожному каталозі є елементи ".". і "..", що поміщаються в каталог у момент його створення. Елемент "." містить номер і-вузла поточного каталогу, а елемент ".." - номер i-вузла батьківського каталогу. Таким чином, процедура, що шукає файл ./dick/prog.c, просто знаходить ".." в робочому каталозі, розшукує в нім номер i-вузла батьківського каталогу, в якому шукає описувач каталогу dick. Для обробки цих імен не потрібно спеціальний механізм. Імена робітника і батьківського каталогів є звичайні ASCII - стрічки, що не відрізняються від будь-яких інших імен.

Дослідження в області файлових систем

Файловим системам завжди приділялося більше уваги дослідників, чим іншим частинам операційної системи, і така ситуація зберігається досі. Деякі подібні дослідження торкаються структури файлової системи. Останнім часом популярними є файлові системи з журнальною структурою LFS [226,356]. Логічний диск розбиває файлову систему на два рівні: файлову систему і дискову систему [85]. Побудова файлової системи з наростаючих рівнів також складає тему досліджень [152].

Розширювані файлові системи аналогічні розширюваним ядрам, розглянутим в главі 1. Вони дозволяють додавати до файлових систем нові можливості без необхідності перестворювати їх з нуля [174,180].

Іншою популярною темою досліджень є виміри складу і використання файлової системи. Дослідники вимірюють такі чинники, як розподілення розмірів файлів, час життя файлів, частоту звернень до файлів, співвідношення частот операцій читання і запису і багато інших параметрів [98,128, 281,346].

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

Архівація і відновлення файлової системи є темою, про яку багато користувачів рідко замислюються до тих пір, поки не станеться щось страшне. У цій області також з'являються нові ідеї оптимізації [62, 94,160]. З цією темою пов'язано питання про те, що робити, коли користувач видаляє файл - видалити його або приховати? Наприклад, файлова система Elephant ніколи нічого не забуває [290, 291].

Резюме

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

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

Файлові системи описані на прикладі ISO 9660, СР/М, MS - DOS, Windows 98 і UNIX. Вони багато в чому відрізняються один від одного, зокрема способом обліку приналежності блоків файлам, каталоговою структурою і управлінням вільним дисковим простором.

Питання

  1. Створіть п'ять різних шляхів до файлу /etc/passwd. Підказка: використовуйте елементи каталогу "." і "..".

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

  3. У ранніх версіях системи UNIX виконувані файли (файли a.out) починались із специфічного "магічного" числа, що не було випадковим. Ці файли починалися із заголовка, за яким йшли сегменти з текстом програми і даними. Як ви думаєте, чому для виконуваних фай-лов було вибрано особливе "магічне" число, тоді як для файлів інших типів використовувалися більш менш випадкові "магічні" числа як перше слово?

  4. У таблиці. 6.2 один з атрибутів є довжиною запису. Навіщо цей атрибут потрібний операційній системі?

  5. Чи є необхідним системний виклик open в системі UNIX? Якими будуть наслідки його відсутності?

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

  7. У деяких операційних системах надається системний виклик rename, що дозволяє змінити ім'я файлу. Чи є різниця між використанням цього системного виклику і копіювання файлу з новим ім'ям з наступним видаленням старого файлу?

  8. Деякі системи дозволяють відображувати частину файлу на пам'ять. Які обмеження мають бути накладені на таку систему? Як реалізується таке часткове відображення файлу на пам'ять?

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

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

  11. Розглянете дерево каталогів на мал. 6.7. Якщо /usr/jim є робочим каталогом, як виглядатиме абсолютний шлях для файлу з відповідним шляхом./ast/x?

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

  13. Один із способів використовувати безперервні файли на диску і не страждати від дір полягає в ущільненні диска при кожному видаленому файлі. оскільки усі файли є безперервними, для копіювання файлу вимагається певний час на пошук циліндра і обертання диска при прочитуванні файлу, після якого відбувається перенесення даних на повній швидкості. При записі файлу на диск потрібно аналогічні операції. При часі пошуку циліндра, рівному 5 мс, затримці обертання в 4 мс, швидкості передачі даних 8 Мбайт/з і середньому розмірі файлу 8 Кбайт, скільки знадобиться часу для того, щоб прочитати файл в оперативну пам'ять, а потім записати його назад на нове місце на диску? При тих же параметрах скільки буде потрібно часу для ущільнення половини 16-гігабайтного диска?

  14. У світлі відповіді на попереднє питання, чи є взагалі сенс в ущільненні диска?

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

  16. Як реалізований довільний доступ до файлів в MS - DOS?

  17. Розглянете і-вузол, зображений на мал. 6.12. Якщо він містить 10 дискових адрес, по 4 байт кожен, а усі дискові блоки мають розмір 1024 байт, чому дорівнює максимальний розмір файлу?

  18. Було запропоновано збільшити продуктивність і ефективність використання дискового простору за допомогою зберігання коротких файлів прямо в i-вузлах. Виходячи з мал. 6.12, скільки даних може зберігатися всередині і-вузла?

  19. Дві студентки з факультету кібернетики, Керолін і Елінор, обговорюють i-вузли. Керолін стверджує, що пам'ять стала такою великою і дешевою, що при відкритті файлу простіше і швидше рахувати нову копію i-вузла в таблицю i-вузлів, чим шукати цей i-вузол по усій таблиці. Елінор не згодна. Хто правий?

  20. Назвіть одну перевагу жорстких зв'язків над символьними зв'язками і одну перевагу символьних зв'язків над жорсткими зв'язками.

  21. Облік вільного дискового простору може здійснюватися за допомогою зв'язних списків або бітових масивів. Дискові адреси складаються з D біт. За якої умови для диска з В блоків, Fii3 яких вільні, список займе менше місця, чим бітовий масив? Виразите вашу відповідь у відсотках від об'єму диска для D - 16.

  22. Після першого форматування дискового розділу початок бітового масиву обліку вільних блоків виглядає так: 1000 0000 0000 0000 (перший блок використовується для кореневого каталогу). Система завжди шукає вільні блоки від початку розділу, тому після запису файлу Л, що займає 6 блоків, бітовий масив набирає наступного вигляду: 1111 1110 0000 0000. Покажіть, як виглядатиме бітовий масив після кожної з наступних дій :

а) записується файл В розміром в 5 блоків;

б) віддаляється файл А\

в) записується файл С розміром в 8 блоків;

г) віддаляється файл В.

  1. Що станеться, якщо бітовий масив або список вільних блоків виявиться повністю втрачений в результаті збою? Чи є спосіб відновлення від такого збою або з диском можна попрощатися? Обговорите свою відповідь окремо для файлових систем UNIX і FAT - 16.

  2. Нічна робота Олівера Аула в університеті полягає в зміні стрічок, що використовуються для архівації даних. Чекаючи закінчення запису на кожну плівку, Олівер пише статтю, в якій доводить, що п'єси Шекспіра були написані інопланетними прибульцями. За відсутністю іншої системи, його текстовий процесор працює прямо в системі, що архівується. Чи є якісь проблеми, пов'язані з подібною організацією?

  3. В главі обговорювалася тема створення інкрементних резервних копій. У системі Windows легко визначити, який файл слід архівувати, оскільки у кожного файлу є спеціальний архівний біт. У системі UNIX такого біта немає. Як програма архівації в системі UNIX визначає, для якого файлу слід створити резервну копію?

  4. Допустимо, що файл 21 на мал. 6.21 не був змінений з моменту останньої архівації. Як при цьому відрізнятимуться чотири бітові масиви на мал. 6.22?

  5. Було запропоновано зберігати першу частину кожного файлу системи UNIX в тому ж дисковому блоці, що і його i -вузол. Які переваги такого підходу?

  6. Розглянемо мал. 6.23. Чи можлива ситуація, при якій для деякого блоку значення лічильників в обох списках дорівнює 2? Як може бути виправлена ця проблема?

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

  8. У гнучкого диска 40 циліндрів. Операція пошуку займає 6 мс на циліндр. Якщо не намагатися розмістити блоки файлу близько один до одного, два логічно послідовних блоки (тобто наступних один за іншим у файлі) виявляться в середньому на відстані 13 циліндрів один від одного. Проте якщо операційна система намагається об'єднувати логічно сусідні блоки в кластери, то середня міжблокова відстань може бути зменшена (напри-мер) до двох циліндрів. Скільки знадобиться часу в обох випадках для зчитування 100-блокового файлу, якщо затримка обертання складає 100 мс, а час перенесення одного блоку дорівнює 25 мс?

  9. Розглянете ідею графіку на мал. 6.17, але для диска з середнім часом пошукавши мс, швидкістю обертання 15 000 про/мін і 262 144 байт на доріжці. Чому дорівнює швидкість передачі даних для блоків розміру 1, 2 і 4 Кбайт?

  10. Деяка файлова система використовує 2-кілобайтні дискові блоки. Медіанний розмір файлів складає 1 Кбайт. Якби усі файли мали розмір в 1 Кбайт, яка частина диска втрачалася б даремно? Як ви думаєте, втрати в реальній системі вище за це число або нижче? Поясніть свою відповідь.

  11. Система СР/М розроблялася для роботи на маленькому гнучкому диску як основний пристрій зберігання даних. Припустимо, її слід перенести на сучасний комп'ютер з великим жорстким диском. Чому дорівнює максимальний розмір жорсткого диска, при якому не буде потрібно зміни формату каталогу, показаного на мал. 6.28? Поля в каталозі і інші системні параметри можуть бути при необхідності змінені. Які зміни ви б зробили?

  12. Таблиця FAT - 16 систем MS - DOS містить 64 До елементів. Припустимо, що один біт було потрібно для інших цілей і що таблиця замість 64 До містить 32 768 елементів. Чому в цих умовах буде рівний максимальний розмір файлу за відсутності інших змін?

  13. У системі MS - DOS файлам доводиться змагатися за місце в таблиці FAT - 16, що зберігається в оперативній пам'яті. Якщо один файл використовує k елементів, тобто k елементів, недоступних іншим файлам, які обмеження це накладає на загальну довжину усіх разом узятих файлів?

  14. У файловій системі UNIX кілобайтні блоки і 4-байтові дискові адреси. Чому дорівнює максимальний розмір файлу, якщо i-вузол містить 10 прямих адрес і по одному одинарному, подвійному і потрійному непрямому елементу?

  15. Скільки знадобиться дискових операцій для зчитування i-вузла файлу /usrfast/courses/os/handout.t? Припустимо, що i-вузол кореневого каталогу знаходиться в оперативній пам'яті, але більше ні за що, що відноситься до цього шляху, в пам'яті немає. Крім того, припустите, що усі каталоги займають по одному блоку диска.

  16. У багатьох версіях системи UNIX i-вузли зберігаються на початку диска. Альтернативний дизайн полягає у виділенні i-вузла блоку у момент створення файлу і приміщенні цього блоку на початку першого блоку файлу. Обговорите переваги і недоліки обох підходів.

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

  18. Напишіть програму, що починає роботу в заданому каталозі і спускається по дереву каталогів, записуючи по дорозі розміри усіх файлів, що їй зустрілися. Закінчивши сканування каталогу, програма повинна роздрукувати гістограму розмірів файлів, використовуючи крок гістограми як параметр (наприклад, при кроці 1024, файли розміром від 0 до 1023 байт потрапляють в один інтервал, від 1024 до 2047 байт - в наступний інтервал і т. д.).

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

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

  21. Напишіть файлову систему СР/М на мові З або З++. Необхідну для цього інформацію ви можете знайти в Інтернеті.