Virtuális memória

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?

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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.