запитСтруктура кеш-пам’яті
Рис. 28. Кеш-пам'ять
6.2. Принцип кешування пам’яті
Кешування — це універсальний метод, придатний для прискорення доступу до ОП, до диска і до інших видів ЗП. Якщо кешування застосовується для зменшення середнього часу доступу до ОП, то в якості кеша використовують швидкодіючу статичну пам'ять. Якщо кешування використовується системою в/в для прискорення доступу до даних, що зберігається на диску, то в цьому випадку роль кеш-пам'яті виконують буфери в ОП, у яких осідають найбільше активно використовувані дані. ВП також можна вважати одним з варіантів реалізації принципу кешувания даних, при якому ОП виступає в ролі кеша стосовно зовнішньої пам'яті — жорсткому диску.
У системах, оснащених кеш-пам'яттю, кожен запит до ОП виконується у відповідності з наступним алгоритмом:
1. Проглядається вміст кеш-пам'яті з метою визначення, чи не знаходяться потрібні дані в кеш-пам'яті; кеш-пам'ять не є адресованою, тому пошук потрібних даних здійснюється по вмісту - значенню поля чи "адресу в ОП", взятому з запиту.
2. Якщо дані виявляються в кеш-пам'яті, то вони зчитуються з її, і результат передається в процесор.
3. Якщо потрібних даних , то вони разом зі своєю адресою копіюються з ОП в кеш-пам'ять, і результат виконання запиту передається в процесор. При копіюванні даних може виявитися, що в кеш-пам'яті немає вільного місця, тоді вибираються дані, до яких в останній період було найменше звертань, для витиснення з кеш-пам'яті. Якщо витіснені дані були модифіковані за час перебування в кеш-пам'яті, то вони листуються в ОП. Якщо ж ці дані не були модифіковані, то їхнє місце в кеш-пам'яті з'являється вільним.
На практиці в кеш-пам'ять зчитується не один елемент даних, до якого відбулося звертання, а цілий блок даних, це збільшує імовірність так називаного "влучення в кеш", тобто перебування потрібних даних у кеш-пам'яті.
Покажемо, як середній час доступу до даних залежить від імовірності влучення в кеш. Нехай мається основніЗП із середнім часом доступу до даних t1 і кеш-пам'ять, що має час доступу t2, мабуть, що t2<t1. Позначимо через t середній час доступу до даних у системі з кеш-пам'яттю, а через p -імовірність влучення в кэш. По формулі повної імовірності маємо:
t = t1((1 - p) + t2(p
Зїївидно, щосереднійчасдоступудоданихусистемізкеш-пам'яттюлінійнозалежитьвідімовірностівлученнявкешізмінюєтьсявідсередньогочасудоступувосновнийЗП (прир=0) досередньогочасудоступубезпосередньовкеш-пам'ять (прир=1).
У реальних системах імовірність влучення в кеш складає приблизно 0,9. Високе значення імовірності перебування даних у кеш-пам'яті зв'язано з наявністю в даних об'єктивних властивостей: просторової і тимчасової локальності.
· Просторова локальність. Якщо відбулося звертання по деякій адресі, то з високим ступенем імовірності найближчим часом відбудеться звертання до сусідніх адрес.
· Тимчасова локальність. Якщо відбулося звертання по деякій адресі, то наступне звертання по цій же адресі з великою імовірністю відбудеться найближчим часом .
Усі попередні міркування справедливі і для інших пар ЗП, наприклад, для ОП і зовнішньої пам'яті. У цьому випадку зменшується середній час доступу до даних, розташованим на диску, і роль кеш-пам'яті виконує буфер в ОП.
6.3. Узгодження швидкостей обміну і кешування даних.
При обміні даними завжди виникає задача узгодження швидкості. Узгодження швидкості звичайно досягається за рахунок буферизації даних в ОП і синхронізації доступу процесів до буфера.
У підсистемі в/в для узгодження швидкостей обміну також широко використовується буферизація даних в ОП. У тих спеціалізованих ОС, у яких забезпечення високої швидкості в/в є першочерговою задачею (керування в реальному часі, послуги мережної файлової служби і т.п.), велика частина ОП виділяється не під коди прикладних програм, а під буферизацію даних. Однак буферизація тільки на основі ОП в підсистемі в/в виявляється недостатньою — різниця між швидкістю обміну з ОП, куди процеси поміщають дані для обробки, і швидкістю роботи зовнішнього пристрою часто стає занадто значної, щоб як тимчасовий буфер можна було б використовувати ОП — її обсягу може просто не вистачити. Для таких випадків необхідно передбачити особливі міри, і часто як буфер використовується дисковий файл, названий також спул-файлом (від spool — шпулька, теж буфер, тільки для ниток). Типовий приклад застосування спулинга дає організація виводу даних на принтер. Для документів, що друкуються, обсяг у кілька десятків мегабайт — не рідкість, тому для їхнього тимчасового збереження (а печатка кожного документа займає від декількох хвилин до десятків хвилин) обсягу ОП явно недостатньо.
Буферизація даних дозволяє не тільки погодити швидкості роботи процесора і зовнішнього пристрою, але і вирішити іншу задачу — скоротити кількість реальних операцій в/в за рахунок кешування даних. Дисковий кеш є неодмінним атрибутом підсистем в/в практично всіх ОП, значно скорочуючи час доступу до збережених даних.
7. Розподіл ОП в ОС дляMS-DOS
Перше питання, що хочеться задати — це які ОС варто відносити до сучасних, а які — ні? Чи варто в наш час вивчати таку «несучасну» ОС, як MS-DOS? На наш погляд, насамперед до сучасних ОС варто віднести ті, що використовують апаратні можливості мікропроцесорів, спеціально закладені для організації високопродуктивних і надійних обчислень. Однак ці ОС, як правило, дуже складні і громісткі. Вони займають великий дисковий простір, вимагають і великого обсягу ОП. Тому для рішення деякого класу задач цілком підходять і системи, що використовують мікропроцесори в так називаному реальному режимі роботи.