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.

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.
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:
- Alacsony memória - A Operadolog rendszer ebben a típusú memóriában lakik.
- 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:
- Külső töredezettség
- 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. |

