Виртуална памет в OS: какво е, пейджинг при поискване, предимства
Какво е виртуална памет?
Виртуална памет е механизъм за съхранение, който предлага на потребителя илюзията, че има много голяма основна памет. Това се прави чрез третиране на част от вторичната памет като основна памет. Във виртуалната памет потребителят може да съхранява процеси с по-голям размер от наличната основна памет.
Следователно, вместо да зарежда един дълъг процес в основната памет, ОС зарежда различните части на повече от един процес в основната памет. Виртуалната памет се реализира най-вече с страниране при поискване и сегментиране при търсене.
Защо се нуждаем от виртуална памет?
Ето причините за използването на виртуална памет:
- Всеки път, когато вашият компютър няма място във физическата памет, той записва това, което трябва да запомни, на твърдия диск в суап файл като виртуална памет.
- Ако работещ компютър 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.
- Това се отразява негативно на цялостната производителност на системата.
- Заемат място за съхранение, което може да се използва иначе за дългосрочно съхранение на данни.
Oбобщение
- Виртуалната памет е механизъм за съхранение, който предлага на потребителя илюзията, че има много голяма основна памет.
- Виртуалната памет е необходима винаги, когато компютърът ви няма място във физическата памет
- Механизмът за пейджинг по заявка е много подобен на система за пейджинг със суап.ping където процесите, съхранени във вторичната памет, и страниците се зареждат само при поискване, а не предварително.
- Важни методи за замяна на страницата са 1) FIFO 2) Оптимален алгоритъм 3) Замяна на LRU страница.
- При метода FIFO (First-in-first-out) паметта избира страницата за замяна, която е била във виртуалния адрес на паметта най-дълго време.
- Оптималният метод за подмяна на страница избира тази страница за подмяна, за която времето до следващото препращане е най-дълго.
- Методът LRU помага на ОС да открие използването на страницата за кратък период от време.
- Виртуалната памет помага да се увеличи скоростта, когато само определен сегмент от програмата е необходим за изпълнението на програмата.
- Приложенията може да работят по-бавно, ако системата използва виртуална памет.

