Virtuális memória az operációs rendszerben: mi az, keresletlapozás, előnyei
⚡ Okos összefoglaló
A virtuális memória egy olyan tárolási mechanizmus, amely a másodlagos tároló egy részét RAM-ként kezelve a nagyméretű főmemória illúzióját kelti a felhasználóban. Lehetővé teszi a fizikai memóriánál nagyobb folyamatok futtatását, és igény szerinti lapozással valósítják meg.

Mi az a virtuális memória?
Virtuális memória egy olyan tárolási mechanizmus, amely azt az illúziót kelti a felhasználóban, hogy nagyon nagy főmemóriával rendelkezik. Úgy valósítja meg, hogy a másodlagos memória egy részét főmemóriaként kezeli. A virtuális memóriában a felhasználó a rendelkezésre álló főmemória méreténél nagyobb méretű folyamatokat tárolhat.
Ezért ahelyett, hogy egy hosszú folyamatot töltene be a fő memóriába, az operációs rendszer egynél több folyamat különböző részeit tölti be a fő memóriába. A virtuális memóriát többnyire keresleti lapozással és keresletszegmentálással valósítják meg.
Miért van szükség virtuális memóriára?
Íme a virtuális memória használatának okai:
- Amikor a számítógépnek nincs hely a fizikai memóriában, a szükséges adatokat egy swap fájlba írja virtuális memóriaként a merevlemezre.
- Ha egy számítógép fut Windows több memóriára/RAM-ra van szüksége, mint amennyi a rendszerbe telepítve van, ezért a merevlemez egy kis részét használja erre a célra.
Hogyan működik a virtuális memória?
A modern világban a virtuális memória manapság meglehetősen elterjedt. Akkor használják, amikor bizonyos oldalakat a főmemóriába kell betölteni a végrehajtáshoz, és a memória nem áll rendelkezésre ennyi oldal számára.
Tehát ebben az esetben ahelyett, hogy megakadályozná az oldalak belépését a főmemóriába, az operációs rendszer megkeresi a legkevésbé használt, vagy nem hivatkozott RAM-területet, és áthelyezi azt a másodlagos memóriába, hogy helyet szabadítson fel az új oldalaknak a főmemóriában.
Hadd értsük meg virtuális memória kezelése egy példa segítségével.
Például
Tegyük fel, hogy egy operációs rendszernek 300 MB memóriára van szüksége az összes futó program tárolásához. Jelenleg azonban csak 50 MB fizikai memória áll rendelkezésre a RAM-ban.
- Az operációs rendszer ezután beállít 250 MB virtuális memóriát, és egy Virtuális memóriakezelő (VMM) nevű programot használ a 250 MB kezelésére.
- Tehát ebben az esetben a VMM létrehoz egy 250 MB méretű fájlt a merevlemezen a szükséges extra memória tárolásához.
- Az operációs rendszer most úgy kezeli a memóriát, mintha a RAM-ban tárolt 300 MB valós memóriát venne figyelembe, még akkor is, ha csak 50 MB szabad hely áll rendelkezésre.
- A VMM feladata 300 MB memória kezelése, még akkor is, ha csak 50 MB valós memóriaterület áll rendelkezésre.
Mi az a kereslet-keresés?
Az igénylapozási mechanizmus nagyon hasonlít a lapozó rendszer cserévelping, ahol a folyamatok a másodlagos memóriában tárolódnak, és az oldalak csak igény szerint töltődnek be, nem előre.
Tehát, amikor kontextusváltás történik, az operációs rendszer soha nem másolja a régi program lapjait a lemezről vagy az új program lapjait a főmemóriába. Ehelyett az első oldal betöltése után kezdi el az új program végrehajtását, és beolvassa a program hivatkozott lapjait.
A program végrehajtása során, ha a program egy olyan lapra hivatkozik, amely esetleg nem érhető el a főmemóriában, mert ki lett cserélve, akkor a processzor érvénytelen memóriahivatkozásként kezeli. Ez azért van, mert a laphiba visszaadja a vezérlést a programtól az operációs rendszernek, amely a lap memóriába való visszatárolását követeli.
Az oldalcsere módszerek típusai
Íme néhány fontos oldalcsere-módszer:
- FIFO
- Optimális algoritmus
- LRU oldalcsere
FIFO oldalcsere
A FIFO (First-in-first-out) egy egyszerű megvalósítási módszer. Ennél a módszernél a memória azt az oldalt választja ki a csere számára, amely a leghosszabb ideig volt a memória virtuális címében.
Jellemzők
- Új oldal betöltésekor a memóriában legrégebben lévő oldal törlődik. Így könnyű eldönteni, hogy melyik oldalt kell eltávolítani, mivel az azonosító száma mindig a FIFO verem elején található.
- A fő memória legrégebbi oldalát kell először cserére kiválasztani.
Optimális algoritmus
Az optimális oldalcsere módszer azt az oldalt választja ki a cseréhez, amelynél a leghosszabb a következő hivatkozásig eltelt idő.
Jellemzők
- Az optimális algoritmus eredményezi a legkevesebb oldalhibát. Ezt az algoritmust nehéz megvalósítani.
- Egy optimális oldalcserélő algoritmus rendelkezik a legalacsonyabb oldalhibaaránnyal az összes algoritmus közül. Ez az algoritmus létezik, és MIN-nek vagy OPT-nak kellene nevezni.
- Cserélje ki azt az oldalt, amelyet valószínűleg nem fog hosszabb ideig használni. Csak akkor használja az oldalt, amikor feltétlenül szükséges.
LRU oldalcsere
Az LRU teljes formája a Legkevésbé használt oldal. Ez a módszer segít az operációs rendszernek rövid időn belüli oldalhasználatot megállapítani. Ezt az algoritmust úgy kell megvalósítani, hogy minden oldalhoz egy számlálót rendelünk.
Hogyan működik?
- A főmemóriában a legrégebb óta nem használt oldal kerül kiválasztásra cserére.
- Könnyű megvalósítani, listát vezetni, oldalakat az időben visszatekintve cserélni.
Jellemzők
- Az LRU cseremódszer rendelkezik a legmagasabb számlálóval. Ezt a számlálót öregedési regiszternek is nevezik, amely meghatározza a kort és azt, hogy mennyit kell a hozzájuk tartozó oldalakra hivatkozni.
- A főmemóriában a legrégebb óta nem használt oldalt kell cserére kiválasztani.
- Ezenkívül listát is vezet, és az időbe visszatekintve helyettesíti az oldalakat.
Hibaarány
A hibaszázalék az a gyakoriság, amellyel egy tervezett rendszer vagy alkatrész meghibásodik. Időegységre eső meghibásodások számában fejezik ki. Jelölése görögül λ (lambda).
A virtuális memória előnyei
Íme a virtuális memória használatának előnyei/kedvező tulajdonságai:
- A virtuális memória segít növelni a sebességet, ha a programnak csak egy meghatározott szegmense szükséges a program végrehajtásához.
- Nagyon hasznos a többprogramozási környezet megvalósításában.
- Lehetővé teszi több alkalmazás futtatását egyszerre.
- Segít sok nagy programot kisebb programokba illeszteni.
- A közös adatok vagy kódok megoszthatók a memória között.
- Egy folyamat akár nagyobbá is válhat, mint a teljes fizikai memória.
- Az adatokat/kódot szükség esetén a lemezről kell olvasni.
- A kód bárhol elhelyezhető a fizikai memóriában, áthelyezés nélkül.
- Több folyamatot kell fenntartani a fő memóriában, ami növeli a CPU hatékony használatát.
- Minden oldal a lemezen tárolódik, amíg szükség van rá, utána eltávolításra kerül.
- Lehetővé teszi több alkalmazás egyidejű futtatását.
- A többprogramozás mértékének nincs konkrét korlátja.
- Nagy programokat kell írni, mivel a rendelkezésre álló virtuális címtartomány nagyobb, mint a fizikai memória.
A virtuális memória hátrányai
Íme a virtuális memória használatának hátrányai/hátrányai:
- Az alkalmazások lassabban futhatnak, ha a rendszer virtuális memóriát használ.
- Valószínűleg több időt vesz igénybe az alkalmazások közötti váltás.
- Kevesebb merevlemez-területet kínál a használatához.
- Csökkenti a rendszer stabilitását.
- Lehetővé teszi nagyobb alkalmazások futtatását olyan rendszereken, amelyek nem rendelkeznek elegendő fizikai RAM-mal a futtatásukhoz.
- Nem ugyanazt a teljesítményt nyújtja, mint a RAM.
- Ez negatívan befolyásolja a rendszer általános teljesítményét.
- Olyan tárhelyet foglal el, amelyet egyébként hosszú távú adattárolásra lehetne használni.

