Lapozás Operating System (OS): Mi az, Előnyök, Példa

⚡ Okos összefoglaló

A lapozás egy memóriakezelési technika, amely fix méretű oldalakon tárolja a folyamatokat, és azonos méretű fizikai memóriakeretekbe tölti be őket, lehetővé téve az operációs rendszer számára a nem összefüggő memória használatát, a külső fragmentáció elkerülését és az adatok gyorsabb elérését.

  • 📄 Meghatározás: A lapozás a logikai memóriát fix méretű oldalakra, a fizikai memóriát pedig egyenlő keretekre osztja, leképeziping egy oldal egy képkockára.
  • 🗺️ Oldaltáblázat: Az operációs rendszer egy oldaltáblázatot használ az egyes logikai oldalszámok fizikai keretcímekre való lefordításához.
  • 🛡️ Védelem: Minden egyes laptábla-bejegyzésben egy érvényes/érvénytelen bit védi a memóriát, és jelzi, hogy egy folyamat mely oldalakhoz férhet hozzá.
  • Előnyök: A lapozás eltávolítja a külső töredezettséget és swap-ot hoz létre.ping egyenlő méretű oldalak és keretek között egyszerűen és gyorsan.
  • ⚠️ Kompromisszumok: A lapozás belső fragmentációt és laptáblázat-többletet okozhat, míg a szegmentálás változó méretű szegmenseket használ, amelyek illeszkednek a programstruktúrához.
  • 🤖 AI szög: A gépi tanulás finomhangolja az oldalcsere-döntéseket, a Copilot pedig segít a lapozási és címfordítási kód írásában.

Lapozás Operating rendszer

Mi az a lapozás az operációs rendszerben?

személyhívó egy olyan tárolási mechanizmus, amely lehetővé teszi az operációs rendszer számára, hogy folyamatokat kérjen le a másodlagos tárolóból a főmemóriába lapok formájában. A lapozási módszer során a főmemóriát kis, fix méretű fizikai memóriablokkokra osztják, amelyeket kereteknek neveznek. A keret méretét megegyezően tartják az oldal méretével, hogy a főmemória maximális kihasználtságát elérjék és elkerüljék a külső fragmentációt. A lapozást az adatok gyorsabb eléréséhez használják, és ez egy logikus koncepció.

Példa lapozásra az operációs rendszerben

Annak megértéséhez, hogyan felelnek meg az oldalak a kereteknek, vegyünk egy egyszerű példát. Ha a fő memória mérete 16 KB, a keret mérete pedig 1 KB, akkor a fő memória 16 darab, egyenként 1 KB méretű keretre van osztva.

A rendszerben 4 különálló folyamat található, az A1, A2, A3 és A4, mindegyik 4 KB méretű. Itt az összes folyamat 1 KB-os oldalakra van osztva, így az operációs rendszer egy oldalt tud tárolni egy keretben.

A folyamat elején az összes keret üres marad, így a folyamatok összes oldala összefüggő módon tárolódik.

Példa az operációs rendszerben lévő lapozásra, ha az oldalak egymás után töltődnek be

Ebben a példában látható, hogy az A2 és A4 egy idő után várakozó állapotba kerül. Ezért nyolc keret üressé válik, és más oldalak tölthetők be ezekbe az üres blokkokba. Az A5 folyamat, amelynek mérete 8 oldal (8 KB), a készenléti sorban várakozik.

Példa az operációs rendszerben történő lapozásra, ahol a folyamat nem összefüggő keretekbe van betöltve

Most nyolc nem összefüggő keret érhető el a memóriában, és a lapozás rugalmasságot kínál a folyamatok különböző helyeken történő tárolásában. Ez lehetővé teszi az operációs rendszer számára, hogy az A5 folyamat oldalait töltse be az A2 és A4 helyett.

Mi az a személyhívó védelem?

A lapozási folyamatot egy további bit, az érvényes/érvénytelen bit beszúrásával védik. A lapozás során a memóriavédelmet úgy érik el, hogy minden oldalhoz védelmi biteket rendelnek. Ezek a bitek minden oldaltábla-bejegyzéshez tartoznak, és meghatározzák a megfelelő oldalon engedélyezett védelmet.

A lapozás előnyei

Íme a lapozási módszer használatának előnyei:

  • Ez egy könnyen használható memóriakezelés algoritmus.
  • Nincs szükség külső fragmentációra.
  • Csereping egyszerű az azonos méretű oldalak és az oldalkeretek között.

A lapozás hátrányai

Íme a lapozás hátrányai és hátrányai:

  • Belső széttöredezést okozhat.
  • Az oldaltáblázatok több memóriát fogyasztanak.
  • A többszintű lapozás memóriareferencia-többlethez vezethet.

Mi az a szegmentálás?

A szegmentálás szinte hasonlóan működik, mint a lapozás. Az egyetlen különbség a kettő között, hogy a szegmensek változó hosszúságúak, míg a lapozási módszerben az oldalak mindig fix méretűek.

Egy programszegmens tartalmazza a program fő függvényét, adatszerkezeteit, segédfüggvényeit és így tovább. Az operációs rendszer egy szegmenstérkép-táblázatot tart fenn az összes folyamathoz. Tartalmazza továbbá a szabad memóriablokkok listáját, méretükkel, szegmensszámukkal és a főmemóriában vagy a memóriában elfoglalt helyükkel együtt. virtuális memória.

A szegmentálás előnyei

Íme a szegmentálás előnyei és hátrányai:

  • Védelmet nyújt a szegmenseken belül.
  • A megosztást úgy érheted el, hogy a szegmensek több folyamatra hivatkoznak.
  • Nem okoz belső széttöredezést.
  • A szegmenstáblázatok kevesebb memóriát használnak, mint a lapozás.

A szegmentálás hátrányai

Íme a szegmentálás hátrányai és hátrányai:

  • A szegmentálási módszerben a folyamatok betöltődnek és eltávolításra kerülnek a főmemóriából. Ezért a szabad memóriaterület apró darabokra oszlik, ami külső fragmentációt okozhat.
  • Ez egy költséges memóriakezelési algoritmus.

GYIK

Laphiba akkor keletkezik, amikor egy folyamat olyan lapot kér, amely jelenleg nincs a főmemóriában. Az operációs rendszer szünetelteti a folyamatot, kiolvassa a lapot a másodlagos tárolóból egy szabad keretbe, majd folytatja a végrehajtást.

Az oldaltábla egy olyan adatstruktúra, amelyet az operációs rendszer minden folyamathoz tárol. Minden logikai oldalszámot leképez az adott oldalt tartalmazó fizikai keretre, lehetővé téve a helyes címfordítást a végrehajtás során.

A TLB egy kicsi, gyors gyorsítótár, amely a legutóbbi, oldalról képkockára kiterjedő térképeket tárolja.pings. Felgyorsítja a címfordítást azáltal, hogy elkerüli a teljes oldaltáblázat-keresést a memóriában a gyakran használt oldalak esetében.

Egy oldal egy folyamat fix méretű blokkja a logikai memóriában, míg egy keret a fizikai memória azonos méretű blokkja. A lapozás minden oldalt pontosan egy szabad keretbe tölt be.

Az igény szerinti lapozás csak akkor tölt be egy oldalt a memóriába, amikor a folyamat ténylegesen hivatkozik rá, ahelyett, hogy előre betöltené az egész folyamatot. Ez memóriát takarít meg és felgyorsítja a folyamat indítását.

A belső fragmentáció pazarolja a helyet egy lefoglalt kereten belül, ha egy oldal nem tölti ki teljesen. A külső fragmentáció szétszórt szabad réseket hagy az allokációk között. A lapozás megszünteti a külső fragmentációt, de továbbra is okozhat belső fragmentációt.

A gépi tanulási modellek megjósolják a jövőbeli oldalhivatkozásokat, hogy irányítsák az oldalcserével és az előhívással kapcsolatos döntéseket. Ezek a mesterséges intelligencia technikák célja az oldalhibák arányának csökkentése és a memóriahasználat javítása az adatközpontokban és a felhőalapú rendszerekben.

Igen. A GitHub Copilot képes FIFO, LRU és Optimal oldalcsere kódot generálni, valamint lapozási szimulációkat végezni C nyelven. Javavagy PythonMindig ellenőrizze a hibák számát és a szélső eseteket, mielőtt a kimenetre hagyatkozna.

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