Ugrás a tartalomhoz

demand paging

A Wikiszótárból, a nyitott szótárból


Főnév

demand paging (tsz. demand pagings)

  1. (informatika) A demand paging egy memória-kezelési technika, amely lehetővé teszi, hogy egy program csak akkor töltsön be egy adott memóriaoldalt a háttértárról a fizikai memóriába, amikor arra ténylegesen szükség van. Ez a technika része a virtuális memória kezelésének, és jelentősen csökkenti a programok indítási idejét, valamint optimalizálja a memóriahasználatot.

Hogyan működik a demand paging?

  1. Virtuális memória és oldalak:
    • A rendszer a memória felosztására oldalak (pages) használ, amelyeket a programok virtuális memóriában lévő adatok kezelésére használnak. A virtuális memória lehetővé teszi, hogy a programok úgy dolgozzanak, mintha nagyobb memóriát használnának, mint ami fizikailag elérhető.
  2. Oldalcsere (Page Fault):
    • Amikor egy program egy olyan virtuális címhez próbál hozzáférni, amely nincs betöltve a fizikai memóriába, akkor oldalcsere (page fault) történik. Ez azt jelenti, hogy a rendszer észleli, hogy a kért oldal nincs a memóriában, és meg kell hoznia a szükséges oldalt a háttértárról (például a merevlemezről) a memóriába.
  3. Oldal betöltése:
    • A demand paging technika lényege, hogy a rendszer csak akkor tölti be a memóriaoldalt a háttértárról a fizikai memóriába, amikor az adott oldalra valóban szükség van (amikor a program megpróbál hozzáférni a memóriacímhez).
  4. Swap terület használata:
    • Ha a fizikai memória megtelik, a rendszer a háttértáron található swap területet használja, hogy ideiglenesen áthelyezze a nem használt memóriaoldalakat. Amikor a program hozzáfér egy olyan oldalhoz, amely nincs a memóriában, a rendszer kicseréli az adott oldalt egy másik nem használt oldallal a háttértáron.

Előnyök:

  1. Memóriahatékonyság:
    • A demand paging jelentős előnyt biztosít a memória használatában, mivel csak azokat a memóriaoldalakat tölti be, amelyekre ténylegesen szükség van, így a programok kevesebb memóriát igényelnek a futtatás során. Ez különösen előnyös nagy alkalmazásoknál vagy többfeladatos rendszereknél.
  2. Program indításának gyorsítása:
    • Mivel a programok csak a szükséges oldalakat töltik be, a programok gyorsabban indulhatnak el, mivel nem kell az összes adatot egyszerre betölteni a memória teljes területére.
  3. Virtuális memória használata:
    • A demand paging lehetővé teszi a virtuális memória használatát, amely nagyobb memóriahasználatot biztosít a programok számára, mint amennyi ténylegesen elérhető lenne a fizikai memóriában.

Hátrányok:

  1. Oldalcsere költsége (Page Fault Overhead):
    • Ha egy program túl sok oldalcsere hibát generál, az csökkentheti a teljesítményt, mivel az oldal betöltése a háttértárról (pl. merevlemezről) jelentős időt vehet igénybe, és a háttértár sebessége lényegesen lassabb, mint a RAM-é. Ez az úgynevezett page fault overhead (oldalcsere költsége), ami rontja a program futási sebességét.
  2. Csökkentett teljesítmény:
    • Ha a programok gyakran hajtanak végre oldalcsere műveleteket, az erőforrásokat nagyobb mértékben terhelheti, és a rendszer teljesítménye csökkenhet, különösen akkor, ha a háttértár lassú vagy a rendszer memóriája túl kicsi a program igényeihez.
  3. Bonyolultabb memória menedzsment:
    • A demand paging komplexebb memória-kezelést igényel, mivel a rendszernek nyomon kell követnie, hogy mely oldalak vannak betöltve a memóriában, és amikor egy oldal nem található, újra be kell tölteni azt. A memória és a háttértár közötti koordinálás időigényes és bonyolult lehet.

Oldalcsere kezelése:

A demand paging rendszerben az operációs rendszer és a memória menedzsment egység (MMU) különböző technikákat alkalmaz a hatékony memória kezelése érdekében: 1. LRU (Least Recently Used): Az operációs rendszer az oldalak kezelésére gyakran LRU algoritmust használ, amely a legkevésbé használt oldalakat cseréli ki a háttértárra, amikor új oldalak betöltése szükséges. 2. FIFO (First In, First Out): A FIFO egy másik gyakran alkalmazott algoritmus, amely azokat az oldalakat cseréli ki először, amelyek a legrégebben kerültek betöltésre.

Összegzés:

A demand paging lehetővé teszi a virtuális memória hatékony kezelését, mivel csak akkor tölt be memóriaoldalakat a rendszer, amikor valóban szükség van rájuk. Ez csökkenti a memóriahasználatot és a programok indítási idejét. Azonban ha túl sok oldalcsere történik, az lassíthatja a programot, mivel az adatok áthelyezése a háttértárról a memóriába időigényes lehet. Az operációs rendszerek és a memória menedzsment egység különböző algoritmusokkal optimalizálják a demand paging működését a rendszer teljesítményének fenntartása érdekében.