A virtuális memória egy olyan tárolási séma, amely a felhasználónak azt az illúzióját kelti, hogy nagyon nagy fő memóriája van. Ez úgy történik, hogy a másodlagos memória egy részét kezeli fő memóriaként.
Ebben a sémában a felhasználó a rendelkezésre álló főmemóriánál nagyobb méretű folyamatokat tölthet be azzal az illúzióval, hogy a memória rendelkezésre áll a folyamat betöltéséhez.
Ahelyett, hogy egy nagy 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.
Ezzel megnő a többprogramozás mértéke, és ezáltal a CPU kihasználtsága is.
Hogyan működik a virtuális memória?
Modern szóval a virtuális memória manapság meglehetősen általánossá vált. Ebben a sémában, amikor néhány oldalt be kell tölteni a fő memóriába a végrehajtáshoz, és a memória nem áll rendelkezésre ahhoz a sok oldalhoz, akkor ebben az esetben ahelyett, hogy leállítaná az oldalak belépését a fő memóriába, az operációs rendszer a az utóbbi időben legkevésbé használt vagy nem hivatkozott RAM-területet, és másolja be a másodlagos memóriába, hogy helyet biztosítson az új oldalaknak a fő memóriában.
Mivel mindez automatikusan megtörténik, így a számítógép úgy érzi, mintha korlátlan RAM-mal rendelkezik.
Keresleti személyhívó
A Demand Paging a virtuális memóriakezelés népszerű módszere. Az igény szerinti lapozásnál a folyamat legkevésbé használt lapjai a másodlagos memóriában kerülnek tárolásra.
Egy oldal a fő memóriába másolódik, ha igény van rá, vagy oldalhiba lép fel. Különféle oldalcsere-algoritmusok léteznek, amelyek a lecserélendő oldalak meghatározására szolgálnak. Mindegyikről később részletesen beszélünk.
Pillanatkép egy virtuális memóriakezelő rendszerről
Tegyük fel, hogy 2 folyamat, P1 és P2, egyenként 4 oldalt tartalmaz. Minden oldal mérete 1 KB. A fő memória 8, egyenként 1 KB-os keretet tartalmaz. Az operációs rendszer az első két partícióban található. A harmadik partícióban az 1utcaA P1 oldala tárolódik, és a többi képkocka is megjelenik a fő memória folyamatainak különböző oldalaival kitöltve.
Mindkét oldal oldaltáblázata egyenként 1 KB méretű, így egy-egy keretbe elfér. Mindkét folyamat oldaltáblázata különféle információkat tartalmaz, amelyek a képen is láthatók.
A CPU tartalmaz egy regisztert, amely tartalmazza az oldaltábla alapcímét, amely P1 esetén 5, P2 esetén 7. Ez az oldaltábla alapcíme hozzáadódik a logikai cím oldalszámához, amikor a tényleges megfelelő bejegyzéshez kell hozzáférni.
A virtuális memória előnyei
- A Multiprogramozás mértéke megnövekszik.
- A felhasználó nagyobb alkalmazásokat futtathat kevesebb valódi RAM-mal.
- Nincs szükség több memória RAM vásárlására.
A virtuális memória hátrányai
- A rendszer lassabb lesz, mivel a csere időt vesz igénybe.
- Az alkalmazások közötti váltás több időt vesz igénybe.
- A felhasználónak kevesebb lesz a merevlemez-területe a használatához.