Виртуална памет в OS: какво е, пейджинг при поискване, предимства

⚡ Умно обобщение

Виртуалната памет е механизъм за съхранение, който дава на потребителя илюзията за голяма основна памет, като третира част от вторичната памет като RAM. Той позволява изпълнението на процеси, по-големи от физическата памет, и се реализира с пейджинг по заявка.

  • 🧠 Определение: Виртуалната памет третира част от вторичната памет като основна памет за изпълнение на по-големи процеси.
  • 🎯 Защо е необходимо: Той осигурява допълнителна памет, когато физическата RAM памет е недостатъчна, използвайки swap файл на диска.
  • 📥 Пейджинг за търсене: Страниците се зареждат от диска в RAM паметта само когато действително се направи препратка към тях.
  • 🔁 Замяна на страница: FIFO, Optimal и LRU решават коя страница да се премахне при грешка на страницата.
  • ✅ Предимство: Поддържа мултипрограмиране и позволява на програмите да надвишават размера на физическата памет.
  • ⚠️ Недостатък: Тя е по-бавна от RAM паметта и може да намали цялостната производителност на системата.

Виртуална памет в ОС

Какво е виртуална памет?

Виртуална памет е механизъм за съхранение, който предлага на потребителя илюзията, че разполага с много голяма основна памет. Това се постига чрез третиране на част от вторичната памет като основна памет. Във виртуалната памет потребителят може да съхранява процеси с по-голям размер от наличната основна памет.

Следователно, вместо да зарежда един дълъг процес в основната памет, ОС зарежда различните части на повече от един процес в основната памет. Виртуалната памет се реализира най-вече с страниране при поискване и сегментиране при търсене.

Защо се нуждаем от виртуална памет?

Ето са причините за използване на виртуална памет:

  • Винаги, когато компютърът ви няма място във физическата памет, той записва това, което трябва да запомни, на твърдия диск в swap файл като виртуална памет.
  • Ако работещ компютър Windows изисква повече памет/RAM, отколкото е инсталирана в системата, за тази цел се използва малка част от твърдия диск.

Как работи виртуалната памет?

В съвременния свят виртуалната памет е станала доста разпространена в наши дни. Тя се използва винаги, когато е необходимо да се заредят някои страници в основната памет за изпълнение, а паметта не е налична за този брой страници.

Така че, в този случай, вместо да предотвратява навлизането на страници в основната памет, операционната система търси RAM пространството, което е минимално използвано напоследък или което не е препращано, и го премества във вторичната памет, за да освободи място за новите страници в основната памет.

Нека разберем управление на виртуална памет с помощта на един пример.

Например

Да предположим, че една операционна система изисква 300 MB памет, за да съхранява всички работещи програми. В момента обаче има само 50 MB налична физическа памет, съхранена в RAM паметта.

  • След това операционната система ще настрои 250 MB виртуална памет и ще използва програма, наречена Virtual Memory Manager (VMM), за да управлява тези 250 MB.
  • Така че, в този случай, VMM ще създаде файл на твърдия диск с размер 250 MB, за да съхранява необходимата допълнителна памет.
  • Операционната система вече ще адресира паметта, сякаш разглежда 300 MB реална памет, съхранена в RAM, дори ако е налично само 50 MB пространство.
  • Задачата на VMM е да управлява 300 MB памет, дори ако е налично само 50 MB реално пространство в паметта.

Какво е пейджинг при поискване?

Пейджинг по заявка

Механизмът за пейджинг при поискване е много подобен на a система за пейджинг със суапping, където процесите се съхраняват във вторичната памет, а страниците се зареждат само при поискване, а не предварително.

Така че, когато се случи превключване на контекста, операционната система никога не копира нито една от страниците на старата програма от диска, нито която и да е от страниците на новата програма в основната памет. Вместо това, тя ще започне да изпълнява новата програма след зареждане на първата страница и ще извлече страниците на програмата, към които е насочена.

По време на изпълнението на програмата, ако тя се обърне към страница, която може да не е налична в основната памет, защото е била разменена, процесорът я счита за невалидна препратка към паметта. Това е така, защото грешката на страницата прехвърля контрола обратно от програмата към операционната система, която изисква да съхрани страницата обратно в паметта.

Видове методи за подмяна на страници

Ето някои важни методи за подмяна на страници:

  • FIFO
  • Оптимален алгоритъм
  • Замяна на LRU страница

Подмяна на FIFO страница

FIFO (First-in-first-out) е прост метод за внедряване. При този метод паметта избира страницата за замяна, която е била във виртуалния адрес на паметта най-дълго време.

Характеристики:

  • Всеки път, когато се зареди нова страница, страницата, която е била в паметта най-дълго, се премахва. Така че е лесно да се реши коя страница да се премахне, тъй като нейният идентификационен номер винаги е в началото на FIFO стека.
  • Най-старата страница в основната памет е тази, която трябва да бъде избрана първа за замяна.

Оптимален алгоритъм

Оптималният метод за подмяна на страница избира тази страница за подмяна, за която времето до следващото препращане е най-дълго.

Характеристики:

  • Оптималният алгоритъм води до най-малък брой грешки в страниците. Този алгоритъм е труден за изпълнение.
  • Оптималният алгоритъм за заместване на страници има най-ниския процент на грешки при прекратяване на търсенето от всички алгоритми. Този алгоритъм съществува и би трябвало да се нарича MIN или OPT.
  • Заменете страницата, която е малко вероятно да бъде използвана за по-дълъг период от време. Използва се само времето, когато е необходимо да се използва страницата.

Замяна на LRU страница

Пълната форма на LRU е „Най-малко използвана страница“. Този метод помага на операционната система да открие използването на страницата за кратък период от време. Този алгоритъм трябва да се реализира чрез свързване на брояч с всяка страница.

Как работи?

  • Страницата, която не е била използвана най-дълго време в основната памет, е тази, която ще бъде избрана за заместване.
  • Лесен за изпълнение, поддържайте списък, заменяйте страници, като гледате назад във времето.

Характеристики:

  • Методът за заместване на LRU има най-висок брой. Този брояч се нарича още регистър за стареене, който определя възрастта и колко често трябва да се правят референции към свързаните с тях страници.
  • Страницата, която не е била използвана най-дълго време в основната памет, е тази, която трябва да бъде избрана за заместване.
  • Той също така поддържа списък и замества страници, като гледа назад във времето.

Честота на грешките

Честотата на отказите е честотата, с която проектирана система или компонент се поврежда. Тя се изразява в откази за единица време. Означава се с гръцката буква λ (ламбда).

Предимства на виртуалната памет

Ето плюсовете/ползите от използването на виртуална памет:

  • Виртуалната памет помага да се увеличи скоростта, когато само определен сегмент от програмата е необходим за изпълнението на програмата.
  • Това е много полезно при внедряването на мултипрограмна среда.
  • Позволява ви да стартирате повече приложения наведнъж.
  • Помага ви да вместите много големи програми в по-малки програми.
  • Общите данни или код може да се споделят между паметта.
  • Един процес може да стане дори по-голям от цялата физическа памет.
  • Данните/кодът трябва да се четат от диска, когато е необходимо.
  • Кодът може да бъде поставен навсякъде във физическата памет, без да е необходимо преместване.
  • Повече процеси трябва да се поддържат в основната памет, което увеличава ефективното използване на процесора.
  • Всяка страница се съхранява на диск, докато не стане необходима, след което се премахва.
  • Позволява едновременното изпълнение на повече приложения.
  • Няма конкретно ограничение за степента на мултипрограмиране.
  • Трябва да се пишат големи програми, тъй като наличното виртуално адресно пространство е по-голямо в сравнение с физическата памет.

Недостатъци на виртуалната памет

Ето недостатъците/минусите на използването на виртуална памет:

  • Приложенията може да работят по-бавно, ако системата използва виртуална памет.
  • Вероятно ще отнеме повече време за превключване между приложенията.
  • Предлага по-малко място на твърдия диск за ваша употреба.
  • Намалява стабилността на системата.
  • Това позволява на по-големи приложения да работят в системи, които не предлагат достатъчно физическа RAM памет, за да ги стартират.
  • Не предлага същата производителност като RAM паметта.
  • Това се отразява негативно на цялостната производителност на системата.
  • Заема място за съхранение, което може да се използва за дългосрочно съхранение на данни.

Въпроси и Отговори

Грешка в таблицата на страниците възниква, когато програма се обърне към страница, която в момента не е в основната памет. Операционната система спира програмата, извлича необходимата страница от диска в RAM паметта, актуализира таблицата на страниците и след това възобновява изпълнението.

Прекъсване (thrashing) се случва, когато системата прекарва повече време в размяна (swap).ping страници между RAM паметта и диска, отколкото изпълняващите се процеси. Това се дължи на твърде висока степен на мултипрограмиране и сериозно намалява производителността. Намаляването на активните процеси или добавянето на RAM памет помага.

RAM паметта е бърз физически хардуер, където се съхраняват активни данни. Виртуалната памет е техника, която разширява RAM паметта, като използва дисково пространство, сякаш е памет. Виртуалната памет е много по-голяма, но и много по-бавна от реалната RAM памет.

Изкуственият интелект може да научи моделите на достъп до паметта на програмата и да предвиди кои страници ще са необходими скоро. Това позволява на операционната система да запазва полезни страници в RAM паметта и да премахва правилните, приближавайки се до идеалния оптимален алгоритъм и намалявайки грешките в страниците.

Да. Чрез анализ на минали последователности за достъп, моделите с изкуствен интелект могат да извличат предварително страници, преди да бъдат заявени, и да настройват колко агресивно се разменят страниците. Това намалява грешките на страниците и „thrashing“, въпреки че грешките при прогнозиране и режийните разходи трябва да се поддържат ниски.

Обобщете тази публикация с: