Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

Kempelen Farkas Hallgatói Információs Központ

8. fejezet - Virtuális memória

8. fejezet - Virtuális memória

Virtuális memória alapfogalmak

  • Egy processzus logikai címtartománya ténylegesen nagyobb lehet, mint a rendelkezésre álló fizikai címtartomány. (Az overlay segíthet, de nehézkes)

  • Megoldás: korlátozhatnánk a végrehajtható program méretét a fizikai memória méretére, de ez nem jó megoldás: a programok gyakran tartalmaznak olyan (kód)részeket amelyek rendkívüli eseteket kezelnek. Statisztikailag tekintve ezek olyan ritkák, hogy ez a kódrész szinte sohasem hajtódik végre.

  • (Statikus) tömböknek, táblázatoknak, listáknak sokszor olyan sok memóriát allokálnak, amennyire általában nincs szükség. A program bizonyos ágai csak ritkán aktivizálódnak.

  • A virtuális memória koncepciója a felhasználó/programozó memóriaszemléletének teljes szeparálását jelenti a fizikai memóriától.

A lapozás és a szegmentáció előnyei:

  • Több processzus is tartózkodhat egyszerre a főmemóriában

    • – minden processzusnak csak egy része kerül betöltésre

    • – a főmemóriában tartózkodó sok processzus esetén nagyon valószínű, hogy bármely időpillanatban lesz „futásra kész” processzus

  • Egy processzus logikai mérete nagyobb lehet, mint a főmemória fizikai mérete

Memória típusai:

  • Valós memória

    • – főmemória, melyben a processzusok végrehajtásra kerülnek

  • Virtuális memória

    • – a memória a merevlemezen helyezkedik el

    • – hatékony multiprogramozást tesz lehetővé és mentesíti a felhasználót a főmemória méretének korlátai alól, a felhasználó a valós memóriánál nagyobb memóriát érzékel

Probléma:

  • vergődés (thrashing)

    • – a memóriából olyan processzus kerül ki, melyre azután azonnal szükség van

    • – előfordulhat, hogy a processzoridő nagy részét a blokkok „kicserélgetése” foglalja le (felhasználói utasítások végrehajtása helyett)

Megoldás:

  • lokalitás elv:

    • – egy processzuson belül a program és az adathivatkozások klasztereket alkotnak

    • – rövid idő alatt csak kevés számú processzusblokkra lehet szükség

    • – jóslások tehetők arra vonatkozóan, hogy a program mely blokkjaira lesz szükség a jövőben

    • – ezekkel együtt a virtuális memória hatásosan működhet

A virtuális memória használatához szükséges feltételek

  • a hardvertámogatás kell a lapozáshoz és a szegmentációhoz

  • az operációs rendszer rendelkezzen olyan résszel, amely kezeli a lapok és/vagy szegmensek mozgatását a másodlagos és a főmemória között.