Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.docx
Скачиваний:
21
Добавлен:
12.02.2016
Размер:
1.06 Mб
Скачать

Продуктивність файлової системи Кешування

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

Два фактори, що впливають на побудову кушу:

1. Чи велика ймовірність, що даний блок незабаром знову знадобиться?

2. Чи важливий даний блок з точки зору несуперечності файлової системи?

Отже, блоки, які, можливо, найближчим часом не знадобляться, поміщаються на початок списку. Блоки, які незабаром можуть знову знадобитися, наприклад частково заповнені блоки, в які проводиться запис, поміщаються в кінець списку, тому вони залишаться в кеші на довгий час.

Щоб справитися другою проблемою, у систем є два підходи. В UNIX використовується системний виклик sync, що змушує негайно записати всі змінені блоки на диск. При запуску системи у фоновому режимі запускається програма, яка зазвичай називається update, вона працює в нескінченному циклі і здійснює виклики sync, роблячи паузу в 30 с між викликами. В результаті при аварії втрачається роботи не більше ніж за 30 с.

Кеш, в якому всі модифіковані блоки негайно записуються назад на диск, називається кешем з наскрізним записом.

Випереджаюче читання блоку

Другий метод, що підвищує продуктивність файлової системи, полягає в спробі записати блоки в кеш ще до того, як вони знадобляться, щоб підвищити співвідношення вдалих звернень до кешу. Зокрема, багато файлів читаються послідовно. Коли у файлової системи запитується блок k якого-небудь файлу, вона виконує запит, але, завершивши його виконання, проводить перевірку на присутність в кеші блоку k + 1. Якщо цей блок в ньому відсутній, вона планує читання блоку k + 1 в надії, що коли він знадобиться, він вже буде в кеші. При довільному зверненні до файлу випереджаюче читання не допоможе. Буде прикро, якщо швидкість передачі даних з диска знизиться через читання непотрібних блоків і видалення корисних блоків з кешу. Для кожного файлу можна вести облік режиму доступу до нього, встановлюючи його в «режим послідовного доступу» або в «режим довільного доступу».

Скорочення обсягу переміщень блоку головок диска

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

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