Memóriakezelés operációs rendszerben: Összefüggő, Swapping, Fragmentáció

⚡ Okos összefoglaló

A memóriakezelés az operációs rendszer azon folyamata, amely a számítógép memóriáját vezérli és koordinálja, blokkokat rendelve a futó programokhoz a teljesítmény optimalizálása érdekében. tracks minden memóriahelyet, folyamatokat mozgat a főmemória és a lemez között, és védi a folyamatokat egymástól.

  • 🧠 Meghatározás: A memóriakezelés lefoglalja és tracks memóriablokkok a programok futtatásához a teljesítmény maximalizálása érdekében.
  • 🗂️ technikák: Az egyetlen összefüggő, particionált, lapozott és szegmentált lefoglalás eltérően kezeli a memóriát.
  • 🔄 Csereping: A folyamatok ideiglenesen mozognak a főmemória és egy háttértároló között a többprogramozás felgyorsítása érdekében.
  • 📑 Lapozás vs. szegmentálás: A lapozás fix méretű kereteket használ; a szegmentálás változó hosszúságú szegmenseket.
  • 🧩 Töredezettség: A belső és külső fragmentáció apró, használhatatlan blokkokban pazarolja a memóriát.
  • 🔗 Betöltés és linkelés: A dinamikus betöltés és összekapcsolás memóriát takarít meg azáltal, hogy a rutinokat csak szükség esetén tölti be.

Memóriakezelés az operációs rendszerben

Mi az a memóriakezelés?

Memóriakezelés a számítógép memóriájának vezérlésének és koordinálásának folyamata, blokkokként ismert részek hozzárendelése a különböző futó programokhoz a rendszer általános teljesítményének optimalizálása érdekében.

Ez az operációs rendszer legfontosabb funkciója, amely az elsődleges memóriát kezeli. Segíti a folyamatokat a fő memória és a végrehajtó lemez közötti oda-vissza mozgásban. Segíti az operációs rendszert a következők fenntartásában: tracminden memóriahely k-ja, függetlenül attól, hogy az valamilyen folyamathoz van-e lefoglalva, vagy szabadon marad.

Miért érdemes memóriakezelést használni?

Íme a memóriakezelés használatának okai:

  • Lehetővé teszi annak ellenőrzését, hogy mennyi memóriát kell lefoglalni azokhoz a folyamatokhoz, amelyek eldöntik, hogy melyik processzornak mikor kell memóriát kapnia.
  • Tracks, valahányszor felszabadul vagy felszabadul a készlet, és ennek megfelelően frissíti az állapotot.
  • Lefoglalja a helyet az alkalmazási rutinoknak.
  • Azt is biztosítja, hogy ezek az alkalmazások ne zavarják egymást.
  • Segít megvédeni a különböző folyamatokat egymástól.
  • A programokat a memóriába helyezi úgy, hogy a memória teljes mértékben kihasználva legyen.

Memóriakezelési technikák

Íme néhány a legfontosabb memóriakezelési technikák közül:

Egyetlen összefüggő kiosztás

Ez a legegyszerűbb memóriakezelési technika. Ennél a módszernél a számítógép memóriájának minden típusa, kivéve egy kis részt, amely az operációs rendszer számára van fenntartva, elérhető egyetlen alkalmazás számára. Például az MS-DOS operációs rendszer így osztja ki a memóriát. Egy beágyazott rendszer is egyetlen alkalmazáson fut.

Partícionált kiosztás

Az elsődleges memóriát különféle memóriapartíciókra osztja, amelyek többnyire összefüggő memóriaterületek. Minden partíció egy adott feladat vagy job összes információját tárolja. Ez a módszer abból áll, hogy egy partíciót kiosztanak egy jobnak, amikor az elindul, és felszabadítják, amikor a job befejeződik.

Lapozott memóriakezelés

Ez a módszer a számítógép fő memóriáját fix méretű egységekre osztja, amelyeket oldalkereteknek nevezünk. Ez a hardveres memóriakezelő egység az oldalakat keretekbe képezi le, amelyeket oldalanként kell kiosztani.

Szegmentált memóriakezelés

A szegmentált memória az egyetlen memóriakezelési módszer, amely nem biztosít a felhasználó programjának lineáris és összefüggő címteret.

A szegmenseknek hardveres támogatásra van szükségük szegmenstábla formájában. Tartalmazza a szakasz fizikai címét a memóriában, méretét és egyéb adatokat, például hozzáférésvédelmi biteket és állapotot.

Mi a csere?ping?

Csereping egy olyan módszer, amelyben egy folyamatot ideiglenesen át kell cserélni a főmemóriából a háttértárolóba. Később vissza kell hozni a memóriába a további végrehajtás érdekében.

A háttértároló egy merevlemez vagy valamilyen más másodlagos tárolóeszköz, amelynek elég nagynak kell lennie ahhoz, hogy az összes felhasználó összes memóriaképének másolatát elférjen rajta. Emellett képes közvetlen hozzáférést is biztosítani ezekhez a memóriaképekhez.

Csereping

A csere előnyeiping

Íme a swap főbb előnyei/előnyeiping:

  • Magasabb fokú multiprogramozást kínál.
  • Lehetővé teszi a dinamikus áthelyezést. Például, ha végrehajtási idejű címkötést használunk, akkor a folyamatok különböző helyekre cserélhetők. Ellenkező esetben, fordítási és betöltési idejű kötések esetén a folyamatokat ugyanarra a helyre kell áthelyezni.
  • Segít a memória jobb kihasználásában.
  • Minimális CPU-idő-pazarlás a befejezéskor, így könnyen alkalmazható prioritásalapú ütemezési módszerekben a teljesítmény javítása érdekében.

Mi az a memóriafoglalás?

A memóriafoglalás egy folyamat, amelynek során a számítógépes programok memóriát vagy helyet rendelnek hozzá.

Itt a fő memória kétféle partícióra oszlik:

  1. Alacsony memória - A Operadolog rendszer ebben a típusú memóriában lakik.
  2. Magas memória – A felhasználói folyamatok nagy memóriában tárolódnak.

Partíciókiosztás

A memória különböző blokkokra vagy partíciókra van felosztva. Minden folyamatot a követelményeknek megfelelően osztanak ki. A partíciókiosztás ideális módszer a belső fragmentáció elkerülésére.

Az alábbiakban a különböző partícióelosztási sémák láthatók:

  • Első illeszkedés: Ennél az illesztési típusnál a partíciót a fő memória elejétől számított első elegendő blokkként lefoglalják.
  • Legjobban illeszkedő: A folyamatot ahhoz a partícióhoz rendeli, amely a szabad partíciók közül a legkisebb elegendő partíció.
  • Legrosszabb illeszkedés: A folyamatot ahhoz a partícióhoz rendeli, amely a főmemóriában a lehető legnagyobb szabadon elérhető partíció.
  • Következő illeszkedés: Ez többnyire hasonló az Első Illesztéshez, de ez az Illesztés az utolsó allokációs ponttól keresi az első elegendő partíciót.

Mi az a lapozás?

A lapozás 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 meg kell egyeznie a lap méretével, hogy a főmemória maximálisan kihasználható legyen, és elkerülhető legyen a külső fragmentáció. személyhívó az adatok gyorsabb elérésére szolgál, és ez logikus koncepció.

Mi az a töredezettség?

A folyamatok a memóriában tárolódnak és onnan törlődnek, ami olyan szabad memóriaterületeket hoz létre, amelyek túl kicsik ahhoz, hogy más folyamatok használhassák őket.

Egy idő után ezek a folyamatok kis méretük miatt már nem foglalhatók le memóriablokkokhoz, és a memóriablokkok mindig kihasználatlanok maradnak. Ezt fragmentációnak nevezik. Ez a fajta probléma dinamikus memóriaelosztási rendszerben fordul elő, amikor a szabad blokkok meglehetősen kicsik, így nem képesek teljesíteni egyetlen kérést sem.

A töredezettségi módszer két típusa:

  1. Külső töredezettség
  2. Belső töredezettség
  • A külső töredezettség csökkenthető a memória tartalmának átrendezésével, hogy az összes szabad memóriát egyetlen blokkban helyezzék el.
  • A belső fragmentáció csökkenthető a legkisebb partíció hozzárendelésével, amely még mindig elég jó a teljes folyamat végrehajtásához.

Mi az a szegmentálás?

A szegmentálási módszer szinte hasonlóan működik, mint a lapozás. Az egyetlen különbség a kettő között az, 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ő funkcióját, adatstruktúrákat, segédfunkciókat stb. Az operációs rendszer szegmensleképezési táblázatot tart fenn az összes folyamathoz. Tartalmazza a szabad memóriablokkok listáját is, méretével, szegmensszámaival és a fő memóriában, ill. virtuális memória.

Mi az a dinamikus betöltés?

A dinamikus betöltés egy programrutin, amely nem töltődik be, amíg a program meg nem hívja. Minden rutinnak áthelyezhető betöltési formátumban kell lennie egy lemezen. A főprogram betöltődik a memóriába és végrehajtásra kerül. A dinamikus betöltés jobb memória-kihasználást is biztosít.

Mi az a dinamikus linkelés?

A csatolás egy olyan módszer, amely segít az operációs rendszernek a kód és az adatok különböző moduljainak összegyűjtésében és egyetlen végrehajtható fájlba való egyesítésében. A fájl betölthető a memóriába és végrehajtható. Az operációs rendszer rendszerszintű könyvtárakat képes összekapcsolni egy olyan programmal, amely a betöltéskor egyesíti a könyvtárakat. A dinamikus csatolási módszerben a könyvtárak végrehajtáskor kerülnek összekapcsolásra, így a programkód mérete kicsi maradhat.

Különbség a statikus és a dinamikus terhelés között

Statikus betöltés Dinamikus betöltés
Statikus betöltést akkor használunk, ha statikusan szeretnénk betölteni a programunkat. A fordításkor a teljes program linkelve és lefordítva lesz, külső modul vagy programfüggőség nélkül. Egy dinamikusan betöltött programban hivatkozások kerülnek megadásra, és a betöltés a végrehajtáskor történik.
A betöltéskor a teljes program betöltődik a memóriába, és elindul a végrehajtás. A könyvtár rutinjai csak akkor töltődnek be a memóriába, ha a programban szükség van rájuk.

Különbség a statikus és a dinamikus linkelés között

Íme a statikus és a dinamikus linkelés közötti fő különbségek:

Statikus összekapcsolás Dinamikus linkelés
A statikus linkelés arra szolgál, hogy az összes többi, a program által igényelt modult egyetlen futtatható kóddá egyesítse. Ez segít az operációs rendszernek elkerülni a futásidejű függőségeket. Dinamikus linkelés használata esetén nem kell a tényleges modult vagy könyvtárat a programmal összekapcsolni. Ehelyett a fordítás és linkelés során megadott dinamikus modulra mutató hivatkozást használ.

GYIK

A lapozás (paging) fix méretű keretekre osztja a memóriát, és a programozó számára láthatatlan, míg a szegmentálás a program logikai struktúrája alapján változó hosszúságú szegmensekre osztja a memóriát. A lapozás belső, a szegmentálás pedig külső fragmentációt okozhat.

A belső fragmentáció egy lefoglalt blokkon belüli pazarlás, amikor egy folyamat a blokk méreténél kisebb területet használ fel. A külső fragmentáció a szabad memória felosztása apró, szétszórt blokkokra, amelyek együttesen elég nagyok, de nem képesek kielégíteni egy kérést.

A logikai (virtuális) címet a CPU generálja a program végrehajtása során. A fizikai cím a tényleges hely a főmemóriában. A memóriakezelő egység (MMU) futásidőben fordítja le a logikai címeket fizikai címekké.

A mesterséges intelligencia képes megjósolni, hogy egy programnak mely oldalakra lesz szüksége legközelebb, és előre letölteni azokat, javítva a gyorsítótár-használattal és az oldalcserével kapcsolatos döntéseket. Segít a memóriaszivárgások észlelésében és az elosztási szabályzatok dinamikus hangolásában is, csökkentve a swap-elést.ping és a rendszer általános teljesítményének javítása.

Igen. A mesterséges intelligencia képes megtanulni az allokációs mintákat, és olyan blokkméreteket vagy tömörítési időzítéseket választani, amelyek minimalizálják a fragmentációt. Azzal, hogy megjósolja, mennyi ideig élnek az allokációk, csoportosítja a hasonló objektumokat, csökkentve a szétszórt szabad területet és a költséges memóriatömörítés szükségességét.

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