- •Лекція №10 Управління пам'яттю
- •10.1. Основні поняття і вимоги до управління пам'яттю
- •10.1.1. Переміщення
- •10.1.2. Захист
- •10.1.3. Спільне використання
- •10.1.4. Типи адрес
- •10.2. Розподіл пам'яті без використання дискового простору
- •10.2.1. Розподіл пам'яті фіксованими розділами
- •10.2.2. Динамічний розподіл пам'яті
- •10.2.3. Переміщувані розділи
- •10.2.4. Система двійників
- •10.3. Розподіл пам'яті з використанням дискового простору
- •10.3.1. Поняття віртуальної пам'яті
- •10.3.2. Сторінковий розподіл
- •10.3.3. Сегментний розподіл
- •10.3.4. Сторінково-сегментний розподіл
- •10.3.5. Свопінг
- •10.3.6. Стратегії управління сторінковою пам'яттю
- •10.4. Основні алгоритми заміщення сторінок
- •10.4.1. Оптимальний алгоритм (opt)
- •10.4.2. Виштовхування найдовше не використовувалася сторінки (lru)
- •10.4.3. Першим увійшов - першим вийшов (fifo)
- •10.4.4. Часовий алгоритм
- •10.4.5. Буферизація сторінок
- •10.4.6. Стратегія заміщення і розмір кешу
10.4.5. Буферизація сторінок
Хоча алгоритми найдовше невикористаного і вартовий і превос ¬ ходять алгоритм "першим увійшов - першим вийшов", вони обидва складні і мають високі накладні витрати в порівнянні з останнім. Крім того, слід враховувати, що вартість заміщення модифікованої сторінки вище вартості заміщення немодифікованої, яку не треба записувати у вторинну пам'ять.
Є ще одна цікава стратегія, яка може підвищити виробляй ¬ ність сторінкової організації при використанні найпростішого алгоритму заміщення. Це - буферизація сторінок, використана в VAX VMS. У качест ¬ ве алгоритму заміщення сторінок використовується найпростіший алгоритм "першим увійшов - першим вийшов". Для підвищення ефективності роботи заміщається сторінка не втрачається, а вноситься в один з двох списків: в список вільних сторінок, якщо сторінка не модифікувалася, або до списку модифікованих сторінок. Зауважимо, що фізично сторінка не переміщується - замість цього її запис видаляється з таблиці сторінок і переноситься в список вільних або мо ¬ діфіцірованних сторінок.
Список вільних сторінок являє собою список кадрів сторінок, доступ ¬ них для читання. VMS намагається постійно підтримувати деякий невеликий коли ¬ кість вільних кадрів. Коли сторінка зчитується в кадр, використовується кадр, розташований на початку списку; при цьому сторінка, що знаходилася в ньому раніше, знищується. При заміщенні немодифікованої сторінки вона залишається в пам'я ¬ ти, а її кадр додається до кінця списку вільних сторінок; аналогічно, модиф ¬ товки сторінка додається до списку модифікованих сторінок.
Важливим аспектом цих переміщень є те, що заміщаються страни ¬ ци залишаються в пам'яті. Отже, якщо процес звертається до такої страни ¬ Це, вона повертається в резидентне безліч процесу без значних за ¬ трат. Насправді, списки вільних і модифікованих сторінок ра ¬ бота в якості кеша сторінок. Список модифікованих сторінок дозволяє записувати їх не по одній, а кластерами, що істотно знижує кількість операцій введення-виведення, а отже, і час звернення до диска.
10.4.6. Стратегія заміщення і розмір кешу
Як зазначалося раніше, розмір основної пам'яті з часом стає все більше, як, втім, і розмір додатків. Втіхою може служити те, що розміри кешей також збільшуються. Великі - до кількох мегабайтів - кеші в даний час цілком можливі. При використанні кешей великого розміру заміщення сторінок віртуальної пам'яті може впливати на продуктивність. Якщо кадр сторінки, вибраний для заміщення, распола ¬ нується в кеші, то разом з втратою сторінки з блоку кешу втрачається весь блок.
У системах з використанням буферизації того чи іншого виду виробляй ¬ ність кешу можна збільшити шляхом додавання до стратегії заміщення стратегію розміщення сторінок в буфері. Більшість операційних систем розміщують сторінки в буфері в довільних кадрах, як правило, з використанням ¬ ням алгоритму "першим увійшов - першим вийшов". Дослідження показали, що правильний вибір стратегії розміщення може призвести до зменшення неуспішних пошуків в кеші на 10-20%.
Суть цих стратегій состо ¬ гає в розміщенні послідовних сторінок в основній пам'яті таким чином, щоб мінімізувати кількість кадрів сторінок, які відображаються в одні й ті ж слоти кеша.