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.

  • 🧠 Meghatározás: A virtuális memória a másodlagos tároló egy részét főmemóriaként kezeli a nagyobb folyamatok futtatásához.
  • 🎯 Miért van rá szükség: Extra memóriát biztosít, ha a fizikai RAM nem elegendő, egy lemezen található swap fájl használatával.
  • 📥 Igény szerinti személyhívás: A lapok csak akkor töltődnek be a lemezről a RAM-ba, ha ténylegesen hivatkoznak rájuk.
  • 🔁 Oldalcsere: A FIFO, az Optimal és az LRU elve dönti el, hogy melyik oldalt kell eltávolítani egy oldalhiba esetén.
  • ✅ Előny: Támogatja a többprogramozást, és lehetővé teszi a programok számára, hogy meghaladják a fizikai memória méretét.
  • ⚠️ Hátrány: Lassabb, mint a RAM, és csökkentheti a rendszer teljesítményét.

Virtuális memória az operációs rendszerben

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?

Kereslet személyhívó

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.

GYIK

Oldalhiba akkor keletkezik, amikor egy program egy olyan oldalra hivatkozik, amely jelenleg nincs a főmemóriában. Az operációs rendszer leállítja a program végrehajtását, beolvassa a szükséges oldalt a lemezről a RAM-ba, frissíti az oldaltáblázatot, majd folytatja a végrehajtást.

A csapkodás akkor történik, amikor a rendszer több időt tölt a swappalping A RAM és a lemez közötti oldalak átvitele gyorsabb, mint a folyamatok végrehajtása. Ezt a túl magas fokú multiprogramozás okozza, és súlyosan rontja a teljesítményt. Az aktív folyamatok csökkentése vagy a RAM bővítése segít.

A RAM egy gyors fizikai hardver, ahol az aktív adatokat tárolják. A virtuális memória egy olyan technika, amely a lemezterületet memóriaként használva bővíti a RAM-ot. A virtuális memória sokkal nagyobb, de sokkal lassabb, mint a valódi RAM.

A mesterséges intelligencia képes megtanulni egy program memória-hozzáférési mintáit, és megjósolni, mely oldalakra lesz hamarosan szükség. Ez lehetővé teszi az operációs rendszer számára, hogy a hasznos oldalakat a RAM-ban tartsa, és a megfelelőket eltávolítsa, megközelítve az ideális optimális algoritmust és csökkentve az oldalhibákat.

Igen. A múltbeli hozzáférési szekvenciák elemzésével a mesterséges intelligencia modellek előre letölthetik az oldalakat, mielőtt azokat lekérnék, és beállíthatják, hogy milyen agresszívan cserélődjenek az oldalak. Ez csökkenti az oldalhibákat és a töréseket, bár az előrejelzési hibákat és a többletterhelést alacsonyan kell tartani.

Foglald össze ezt a bejegyzést a következőképpen: