Смекни!
smekni.com

Планування ресурсу Оперативна память (стр. 7 из 8)

На наступному рівні розташовується більш швидкодіюча (час доступу1 дорівнює приблизно 10-20 наносекундам) і менш об'ємна (від десятків мегабайт до декількох гігабайт) ОП, реалізована на відносно повільній динамічній пам'яті DRAM.

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

І нарешті, верхівку в цій піраміді складають внутрішні регістри процесора, що також можуть бути використані для проміжного збереження даних. Загальний обсяг регістрів складає кілька десятків байт, а час доступу визначається швидкодією процесора і дорівнює в даний час зразково 2-3 нc.

Об’єм

Вартість

Десятки байт 2-3 нс Час зберігання

доступу біта

Десятки-сотні

Кілобайт 5-8 нс

Десятки

Мегабайт 10-20 нс

Десятки

Десятки

Гігабайт мс

Рис.27 Ієрархія запам’ятовуючих пристроїв

Таким чином, можна констатувати сумну закономірність — чим більше обсяг пристрою, тим менш швидкодіючим воно є. Більш того, вартість збереження даних у розрахунку на один біт також збільшується з ростом швидкодії пристроїв. Однак користувачу хотілося б мати і недорогу, і швидку пам'ять.

6.1. Кеш-пам’ять

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

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

Розглянемо окремий випадок використання кеш-пам'яті для зменшення середнього часу доступу до даних, що зберігається в ОП. Для цього між процесором і ОП міститься швидкий ЗП, названий просто кеш-пам'яттю (мал. 28). У якості такого може бути використана, наприклад, асоціативна пам'ять. Уміст кеш-пам'яті являє собою сукупність записів про всіх завантажених у неї елементах даних. Кожен запис про елемент даних містить у собі адреса, що цей елемент даних має в ОП, і керуючу інформацію: ознака модифікації й ознака звертання до даних за деякий останній період часу.

“Повільна” відповідь

запит

Структура кеш-пам’яті


Рис. 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? На наш погляд, насамперед до сучасних ОС варто віднести ті, що використовують апаратні можливості мікропроцесорів, спеціально закладені для організації високопродуктивних і надійних обчислень. Однак ці ОС, як правило, дуже складні і громісткі. Вони займають великий дисковий простір, вимагають і великого обсягу ОП. Тому для рішення деякого класу задач цілком підходять і системи, що використовують мікропроцесори в так називаному реальному режимі роботи.