Що таке віртуальна пам’ять?
Віртуальна пам’ять - це механізм зберігання, який створює у користувача ілюзію дуже великої основної пам’яті. Це робиться шляхом обробки частини вторинної пам'яті як основної пам'яті. У віртуальній пам'яті користувач може зберігати процеси з більшим обсягом, ніж доступна основна пам’ять.
Тому, замість того, щоб завантажувати один довгий процес в основну пам’ять, ОС завантажує різні частини більш ніж одного процесу в основну пам’ять. Віртуальна пам’ять в основному реалізована з підкачуванням попиту та сегментацією попиту.
У цьому посібнику з операційної системи ви дізнаєтесь:
- Що таке віртуальна пам’ять?
- Як працює віртуальна пам’ять?
- Що таке пейджингова сторінка?
- Типи способів заміни сторінки
- Заміна сторінки FIFO
- Оптимальний алгоритм
- Заміна сторінки LRU
- Переваги віртуальної пам'яті
- Недоліки віртуальної пам'яті
Навіщо потрібна віртуальна пам’ять?
Ось причини використання віртуальної пам'яті:
- Щоразу, коли на вашому комп’ютері немає місця у фізичній пам’яті, він записує те, що йому потрібно пам’ятати, на жорсткий диск у файл підкачки як віртуальну пам’ять.
- Якщо комп’ютеру під керуванням Windows потрібно більше пам’яті / оперативної пам’яті, а потім встановленому в системі, для цього він використовує невелику частину жорсткого диска.
Як працює віртуальна пам’ять?
У сучасному світі віртуальна пам’ять стала досить поширеною в наші дні. Він використовується, коли деякі сторінки вимагають завантаження в основну пам’ять для виконання, і пам’ять недоступна для цих багатьох сторінок.
Отже, в цьому випадку, замість того, щоб запобігти потраплянню сторінок в основну пам’ять, ОС шукає простір оперативної пам’яті, який мінімально використовувався останнім часом або який не посилається на вторинну пам’ять, щоб звільнити місце для нових сторінок у основна пам’ять.
Давайте розберемося в управлінні віртуальною пам'яттю за допомогою одного прикладу.
Наприклад:
Припустимо, що ОС вимагає 300 Мб пам’яті для зберігання всіх запущених програм. Однак в даний час в оперативній пам'яті зберігається лише 50 МБ фізичної пам'яті.
- Потім ОС встановить 250 МБ віртуальної пам'яті і використовуватиме програму, яка називається Virtual Memory Manager (VMM), для управління цими 250 МБ.
- Отже, у цьому випадку VMM створить на жорсткому диску файл розміром 250 МБ для зберігання необхідної додаткової пам'яті.
- Тепер ОС перейде до адресної пам’яті, оскільки вона враховує 300 МБ реальної пам’яті, що зберігається в оперативній пам’яті, навіть якщо доступно лише 50 МБ місця.
- Завдання VMM - керувати пам’яттю 300 Мб, навіть якщо доступно лише 50 Мб реального місця.
Що таке пейджингова сторінка?
Механізм пейджингового пошуку дуже схожий на пейджингову систему з підкачками, де процеси, що зберігаються у вторинній пам’яті та на сторінках, завантажуються лише на вимогу, а не заздалегідь.
Отже, коли відбувається перемикання контексту, ОС ніколи не копіює будь-яку сторінку старої програми з диска або будь-яку зі сторінок нової програми в основну пам’ять. Натомість він почне виконувати нову програму після завантаження першої сторінки та отримує сторінки програми, на які є посилання.
Під час виконання програми, якщо програма посилається на сторінку, яка може бути недоступна в основній пам'яті, оскільки вона була замінена, процесор вважає її недійсним посиланням на пам'ять. Це пов’язано з тим, що помилка сторінки та передача передають управління назад від програми до ОС, яка вимагає збереження сторінки назад у пам’яті.
Типи методів заміни сторінки
Ось кілька важливих методів заміни сторінки
- FIFO
- Оптимальний алгоритм
- Заміна сторінки LRU
Заміна сторінки FIFO
FIFO (First-in-first-out) - простий спосіб реалізації. У цьому методі пам’ять вибирає сторінку для заміни, яка найдовше знаходилась у віртуальній адресі пам’яті.
Особливості:
- Щоразу, коли завантажується нова сторінка, вона нещодавно потрапляє в пам’ять, видаляється. Отже, легко вирішити, яку сторінку потрібно видалити, оскільки її ідентифікаційний номер завжди знаходиться в стеку FIFO.
- Найстаріша сторінка в основній пам'яті - це та, яку слід обрати для заміни спочатку.
Оптимальний алгоритм
Оптимальний метод заміни сторінки вибирає ту сторінку для заміни, для якої час до наступного посилання є найдовшим.
Особливості:
- Оптимальний алгоритм призводить до найменшої кількості помилок сторінки. Цей алгоритм важко реалізувати.
- Оптимальний метод алгоритму заміни сторінки має найнижчу частоту помилок сторінки з усіх алгоритмів. Цей алгоритм існує, і його слід називати MIN або OPT.
- Замініть сторінку, яку не хочете використовувати протягом тривалого періоду часу. Він використовує лише час, коли потрібно використовувати сторінку.
Заміна сторінки LRU
Повна форма LRU - це сторінка Найменше нещодавно використаних. Цей метод допомагає ОС знаходити використання сторінки протягом короткого періоду часу. Цей алгоритм повинен бути реалізований шляхом прив’язки лічильника до парної сторінки.
Як це працює?
- Сторінка, яка найдовше не використовувалася в основній пам’яті, буде обрана для заміни.
- Легко реалізувати, вести список, замінювати сторінки, оглядаючись у минуле.
Особливості:
- Метод заміни LRU має найбільший показник. Цей лічильник також називають реєстрами старіння, які вказують їх вік та кількість посилань на пов'язані з ними сторінки.
- Сторінка, яка найдовше не використовувалася в основній пам’яті, та, яку слід обрати для заміни.
- Він також веде список і замінює сторінки, оглядаючись у минуле.
Частота несправностей
Частота несправностей - це частота, з якою спроектована система або компонент виходять з ладу. Це виражається у відмовах за одиницю часу. Позначається грецькою літерою λ (лямбда).
Переваги віртуальної пам'яті
Ось плюси / переваги використання віртуальної пам'яті:
- Віртуальна пам’ять допомагає набирати швидкість, коли для її виконання потрібен лише певний сегмент програми.
- Це дуже корисно при впровадженні середовища багатопрограмування.
- Це дозволяє запускати більше програм одночасно.
- Це допомагає вмістити багато великих програм у менші програми.
- Загальні дані або код можуть спільно використовувати пам'ять.
- Процес може стати навіть більшим, ніж вся фізична пам’ять.
- Дані / код слід читати з диска, коли це потрібно.
- Код можна розмістити в будь-якому місці фізичної пам'яті, не вимагаючи переміщення.
- Більше процесів слід підтримувати в основній пам'яті, що збільшує ефективне використання центрального процесора.
- Кожна сторінка зберігається на диску до тих пір, поки не буде потрібно після цього, вона буде видалена.
- Це дозволяє запускати більше додатків одночасно.
- Не існує конкретного обмеження ступеня мультипрограмування.
- Слід писати великі програми, оскільки доступний віртуальний адресний простір більше, ніж фізична пам’ять.
Недоліки віртуальної пам'яті
Ось недоліки / мінуси використання віртуальної пам'яті:
- Програми можуть працювати повільніше, якщо система використовує віртуальну пам’ять.
- Ймовірно, потрібно більше часу для перемикання між програмами.
- Пропонує менше місця на жорсткому диску для вашого використання.
- Це знижує стабільність системи.
- Це дозволяє великим програмам працювати в системах, які не пропонують достатньо фізичної оперативної пам’яті для їх запуску.
- Він не пропонує таку ж продуктивність, як оперативна пам’ять.
- Це негативно впливає на загальну продуктивність системи.
- Займіть місце для зберігання, яке в іншому випадку може використовуватися для тривалого зберігання даних.
Короткий зміст:
- Віртуальна пам’ять - це механізм зберігання, який створює у користувача ілюзію дуже великої основної пам’яті.
- Віртуальна пам'ять потрібна, коли на вашому комп'ютері немає місця у фізичній пам'яті
- Механізм пейджингового пошуку дуже схожий на пейджингову систему з підкачками, де процеси, що зберігаються у вторинній пам’яті та на сторінках, завантажуються лише на вимогу, а не заздалегідь.
- Важливими методами заміни сторінки є 1) FIFO 2) Оптимальний алгоритм 3) Заміна сторінки LRU.
- У методі FIFO (First-in-first-out) пам'ять вибирає сторінку для заміни, яка найдовше знаходилась у віртуальній адресі пам'яті.
- Оптимальний метод заміни сторінки вибирає ту сторінку для заміни, для якої час до наступного посилання є найдовшим.
- Метод LRU допомагає ОС знаходити використання сторінки протягом короткого періоду часу.
- Віртуальна пам’ять допомагає набирати швидкість, коли для її виконання потрібен лише певний сегмент програми.
- Програми можуть працювати повільніше, якщо система використовує віртуальну пам’ять.