A virtuális memória a számítógépes rendszer másodlagos memóriájának (például merevlemez vagy szilárdtest-meghajtó) egy olyan területe, amely úgy viselkedik, mintha a rendszer RAM-jának vagy elsődleges memóriájának része lenne.
Az alkalmazások futtatásához szükséges adatokat általában a RAM-ban tárolják, ahol a CPU gyorsan hozzáférhet hozzájuk. Nagyméretű alkalmazások futtatása esetén azonban, vagy ha egyszerre sok alkalmazás fut, a rendszer RAM-ja megtelhet.
A probléma megkerülése érdekében a RAM-ban tárolt, de aktívan nem használt adatok egy része átmenetileg áthelyezhető a virtuális memóriába (amely fizikailag egy merevlemezen vagy más tárolóeszközön található). Ezáltal felszabadul hely a RAM-ban, amely így olyan adatok elhelyezésére használható, amelyekhez a rendszernek azonnal hozzá kell férnie.
Az adatok RAM és virtuális memória közötti cseréjével, amikor nincs rájuk szükség, és vissza a virtuális memóriából a RAM-ba, amikor szükség van rájuk, a rendszer zökkenőmentesen működhet sokkal kevesebb fizikai RAM-mal, mint amennyire egyébként szükség lenne.
A virtuális memória lehetővé teszi, hogy a rendszer nagyobb alkalmazások vagy több alkalmazás egyidejű futtatását tegye lehetővé anélkül, hogy a RAM elfogyna. Pontosabban, a rendszer úgy működhet, mintha a teljes RAM-erőforrásai megegyeznének a fizikai RAM és a virtuális RAM mennyiségével.
- Miért van szükség a virtuális memóriára?
- Virtuális memória vs. fizikai memória
- Hogyan működik a virtuális memória?
- Hogyan növelhető a virtuális memória egy rendszerben
- A virtuális memória típusai: Lapozás és szegmentálás
- Virtuális memória lapozása
- Virtuális memória szegmentálás
- A virtuális memória előnyei és hátrányai
- A virtuális memória előnyei
- Disadvantages of Virtual Memory
Miért van szükség a virtuális memóriára?
A virtuális memóriát akkor fejlesztették ki, amikor a fizikai RAM nagyon drága volt, és a RAM még mindig drágább gigabájtonként, mint az olyan tárolóeszközök, mint a merevlemezek és a szilárdtest-meghajtók. Ezért sokkal olcsóbb a fizikai RAM és a virtuális memória kombinációját használni, mint a számítógépes rendszert több RAM-mal felszerelni.
Mivel a virtuális memória használata (vagy a virtuális memória növelése) nem jár többletköltséggel (mivel a meglévő tárhelyet használja), így a számítógép több memóriát használhat, mint amennyi a rendszerben fizikailag rendelkezésre áll.
A virtuális memória használatának másik fő oka, hogy minden számítógépes rendszernek van egy (hardver és szoftver által diktált) korlátja a telepíthető fizikai RAM mennyiségére. A virtuális memória használata lehetővé teszi, hogy a rendszer e fizikai RAM-korlátokon túl is működjön.
Virtuális memória vs. fizikai memória
Mivel a RAM drágább, mint a virtuális memória, úgy tűnik, hogy – ha minden dolog egyenlő – a számítógépeket minél kevesebb RAM-mal és minél több virtuális memóriával kell felszerelni.
A virtuális memória jellemzői azonban valójában különböznek a fizikai memóriáéitól. A legfontosabb különbség a virtuális és a fizikai memória között az, hogy a RAM nagyon sokkal gyorsabb, mint a virtuális memória.
Ezért egy 2 GB fizikai RAM-mal és 2 GB virtuális memóriával rendelkező rendszer nem fogja ugyanazt a teljesítményt nyújtani, mint egy hasonló, 4 GB fizikai RAM-mal rendelkező rendszer. Ahhoz, hogy megértsük, miért, meg kell értenünk, hogyan működik a virtuális memória.
Hogyan működik a virtuális memória?
Amikor egy alkalmazás (beleértve az operációs rendszert is) fut, a programszálak és egyéb adatok helyét egy virtuális címen tárolja, míg az adatokat valójában egy fizikai címen tárolja a RAM-ban. Ha később egy másik folyamatnak sürgősebben szüksége van erre a RAM-helyre, akkor az adatok a RAM-ból a virtuális memóriába cserélődhetnek.
Az adatok fizikai és virtuális memória közötti cserélődésének nyomon követése a számítógép memóriakezelőjének feladata. A memóriakezelő egy olyan táblázatot tart fenn, amely az operációs rendszer és az alkalmazások által használt virtuális címeket hozzárendeli azokhoz a fizikai címekhez, amelyeken az adatokat ténylegesen tárolják. Amikor az adatok a RAM és a virtuális memória között cserélődnek, a táblázatot frissítik, hogy egy adott virtuális cím mindig a megfelelő fizikai helyre mutasson.
A számítógép csak olyan szálakat tud futtatni és olyan adatokat tud kezelni, amelyek nem a virtuális memóriában, hanem a RAM-ban vannak tárolva. A szükséges adatok RAM-ba történő cseréje pedig nem elhanyagolható időt vesz igénybe. Ebből következik, hogy a virtuális memória használata teljesítménycsökkenéssel jár.
Másképpen fogalmazva, egy 4 GB RAM-mal rendelkező rendszer általában nagyobb teljesítményt nyújt, mint egy 2 GB RAM-mal és 2 GB virtuális memóriával rendelkező rendszer, mivel a swapolás teljesítménycsökkenést okoz, és ezért mondják, hogy a virtuális memória lassabb, mint a RAM.
A virtuális memória egyik lehetséges problémája, hogy ha a meglévő RAM mennyisége túl kicsi a virtuális memória mennyiségéhez képest, akkor a rendszer a CPU-erőforrások nagy részét az adatok ide-oda cserélgetésével tölti. Eközben a hasznos munka teljesítménye szinte leáll – ezt a folyamatot thrashingnek nevezik.
A thrashing megelőzéséhez általában csökkenteni kell az egyszerre futó alkalmazások számát, vagy egyszerűen növelni kell a rendszerben lévő RAM mennyiségét.
A rendszerek, például a Windows legtöbb verziója, általában azt javasolják, hogy a felhasználók ne növeljék a virtuális memóriát a fizikai RAM mennyiségének 1,5-szeresére. Tehát egy 4 GB RAM-mal rendelkező rendszernek legfeljebb 6 GB virtuális memóriája lehet.
A fizikai és a virtuális memória közötti swapolás okozta teljesítménycsökkenés minimalizálása érdekében a virtuális memória elhelyezésére a rendszerhez csatlakoztatott leggyorsabb tárolóeszközt érdemes használni, és a virtuális memória tárolási területét saját partícióban elhelyezni.
A virtuális memória a számítógép főmemóriájával együttesen működhet a gyorsabb és gördülékenyebb műveletek lehetővé tétele érdekében.
Hogyan növelhető a virtuális memória egy rendszerben
A legtöbb operációs rendszer lehetővé teszi a felhasználók számára a virtuális memória növelését egy konfigurációs oldalról.
- A Windows rendszerben a felhasználók azt is engedélyezhetik, hogy a rendszer dinamikusan kezelje a biztosított virtuális memória mennyiségét.
- A Mac OS-ben hasonlóan a felhasználók a beállítási panelen osztják ki a virtuális memóriát.
A virtuális memória típusai: Lapozás és szegmentálás
A virtuális memóriát a rendszer operációs rendszere többféleképpen is kezelheti, a két leggyakoribb megközelítés a lapozás és a szegmentálás.
Virtuális memória lapozása
A lapozást használó rendszerben a RAM memória több – általában 4 k méretű – blokkra, úgynevezett lapokra van osztva. A folyamatok ezután éppen annyi oldalt kapnak, amennyi a memóriaigényüknek megfelel. Ez azt jelenti, hogy mindig lesz egy kis mennyiségű elpazarolt memória, kivéve azt a szokatlan esetet, amikor egy folyamatnak pontosan egész számú lapra van szüksége.
A normál működés során a lapok (azaz a 4K méretű memóriablokkok) cserélődnek a RAM és a virtuális memóriát jelentő lapfájl között.
Virtuális memória szegmentálás
A szegmentálás a memóriakezelés alternatív megközelítése, ahol a fix méretű lapok helyett a folyamatok különböző hosszúságú szegmenseket kapnak, hogy pontosan megfeleljenek az igényeiknek. Ez azt jelenti, hogy a lapozós rendszerrel ellentétben egy szegmensben nem veszik kárba a memóriát.
A szegmentáció azt is lehetővé teszi, hogy az alkalmazásokat logikailag független címterekre osszák fel, ami megkönnyítheti a megosztást és biztonságosabbá teheti azokat.
A szegmentációval azonban az a probléma, hogy mivel minden szegmens különböző hosszúságú, a memória “töredezettségéhez” vezethet. Ez azt jelenti, hogy a szegmensek ki- és felosztása során olyan kis memóriarészek maradhatnak szétszórva, amelyek túl kicsik ahhoz, hogy hasznosak legyenek.
Amint ezek a kis darabok felhalmozódnak, egyre kevesebb hasznos méretű szegmenset lehet kiosztani. Ha pedig az operációs rendszer elkezdi használni ezeket a kis szegmenseket, akkor rengeteg ilyen szegmenst kell számon tartani, és minden egyes folyamatnak sok különböző szegmenst kell használnia, ami nem hatékony és csökkentheti a teljesítményt.
A virtuális memória előnyei és hátrányai
Noha a RAM ma már viszonylag olcsó ahhoz képest, hogy a virtuális memória kifejlesztésekor mennyibe került, még mindig rendkívül hasznos, és még mindig sok, talán a legtöbb számítógépes rendszerben alkalmazzák. A virtuális memóriával kapcsolatos fő probléma a teljesítménnyel kapcsolatos.
A virtuális memória előnyei
- Több alkalmazás egyidejű futtatását teszi lehetővé.
- A nagyobb alkalmazások futtatását teszi lehetővé olyan rendszerekben, amelyekben önmagában nincs elég fizikai RAM a futtatásukhoz.
- Megoldást nyújt a memória növelésére, ami kevésbé költséges, mintha több RAM-ot vásárolnánk.
- Provides a way to increase memory in a system which has the maximum amount of RAM that its hardware and operating system can support.
Disadvantages of Virtual Memory
- Does not offer the same performance as RAM.
- Can negatively affect the overall performance of a system.
- Takes up storage space which could otherwise be used for long term data storage.