Віртуальна пам'ять в ОС: що таке, сторінка за запитом, переваги

Що таке віртуальна пам'ять?

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

Тому замість того, щоб завантажувати один довгий процес в основну пам’ять, ОС завантажує різні частини більш ніж одного процесу в основну пам’ять. Віртуальна пам'ять здебільшого реалізується за допомогою сторінок за вимогою та сегментації за вимогою.

Навіщо потрібна віртуальна пам'ять?

Ось причини використання віртуальної пам'яті:

  • Щоразу, коли вашому комп’ютеру не вистачає місця у фізичній пам’яті, він записує те, що йому потрібно запам’ятати, на жорсткий диск у файл підкачки як віртуальну пам’ять.
  • Якщо комп'ютер працює Windows потребує більше пам’яті/ОЗП, тоді встановлено в системі, для цього він використовує невелику частину жорсткого диска.

Як працює віртуальна пам'ять?

У сучасному світі віртуальна пам'ять стала досить поширеною в наші дні. Він використовується щоразу, коли деякі сторінки потребують завантаження в основну пам’ять для виконання, а пам’ять недоступна для такої кількості сторінок.

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

Давайте розберемось управління віртуальною пам'яттю за допомогою одного прикладу.

Наприклад

Припустимо, що ОС вимагає 300 МБ пам'яті для зберігання всіх запущених програм. Однак на даний момент в оперативній пам’яті зберігається лише 50 МБ доступної фізичної пам’яті.

  • Після цього ОС налаштує 250 МБ віртуальної пам’яті та за допомогою програми під назвою Virtual Memory Manager (VMM) керуватиме цими 250 МБ.
  • Отже, у цьому випадку VMM створить файл на жорсткому диску розміром 250 МБ для зберігання додаткової пам’яті, яка потрібна.
  • Тепер ОС перейде до адресації пам’яті, оскільки вона розглядає 300 МБ реальної пам’яті, що зберігається в ОЗУ, навіть якщо доступно лише 50 МБ місця.
  • Завданням VMM є керування 300 МБ пам’яті, навіть якщо доступно лише 50 МБ реального простору пам’яті.

Що таке пейджинг за запитом?

Пейджинг на вимогу

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

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

Якщо під час виконання програми програма посилається на сторінку, яка може бути недоступною в основній пам’яті через її заміну, то процесор розглядає це як недійсне посилання на пам’ять. Це тому, що помилка сторінки та перенесення повертають керування від програми до ОС, яка вимагає зберегти сторінку назад у пам’ять.

Види методів заміни сторінок

Ось кілька важливих методів заміни сторінки

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

Підсумуйте цей пост за допомогою: