external fragmentation
Főnév
external fragmentation (tsz. external fragmentations)
- (informatika) External fragmentation (külső fragmentáció) egy memória-kezelési probléma, amely akkor fordul elő, amikor a memória területét nem tudjuk hatékonyan kihasználni, mert az elérhető szabad memória blokkok szétszóródnak és kis darabokra szakadnak. Az external fragmentation problémája a dinamikusan allokált memória rendszerekben merül fel, ahol a programok különböző méretű memória blokkokat kérnek és szabadítanak fel, ezáltal üres helyek keletkeznek a memóriában.
Mi okozza az external fragmentation-t?
- Memória allokáció és felszabadítás: Amikor egy program memória blokkokat kér, az operációs rendszer ezeknek megfelelően osztja szét a fizikai memóriát. Ha a programok befejezték a munkát, és a memóriát visszaadják, az operációs rendszer azt felszabadítja. Azonban gyakran nem a teljes memória blokkjait szabadítják fel, így az üres memória darabokra szakad, és ezek között nem lesz elegendő nagy blokk a következő igényelt memória számára, még akkor sem, ha összességében elegendő szabad memória lenne.
- Széttöredezett szabad memória: Ahogy az alkalmazások dinamikusan foglalják és szabadítják fel a memóriát, a memóriaterület széttöredezik. Ha az elérhető szabad memória több kisebb darabra szakad, és ezek nem egyesíthetők, a rendszer nem tud elég nagy, folyamatos blokkot biztosítani egy új alkalmazás számára, még ha az összes szabad memória összesítve elég is lenne.
Hogyan működik az external fragmentation?
A problémát az okozza, hogy a memória blokkok nem összefüggőek, hanem kisebb szabad részekre vannak szakadva. Ez akkor problémás, ha egy alkalmazás vagy folyamat nagyobb memória területet kér, mint ami egyetlen szabad blokkban elérhető. Még akkor is, ha az összes szabad memória együttesen elegendő, a szétszórt üres helyek nem képesek egyesülni egy megfelelő méretű blokká, így a rendszer nem tudja kiszolgálni a memóriaigényt.
Példa:
- Képzeld el, hogy egy számítógépes program három memória blokkot kér: 100 KB, 200 KB és 300 KB méretűeket. Az operációs rendszer lefoglalja ezeket a blokkokat, de amikor ezek felszabadulnak, különböző memória területeken maradnak üres helyek (például egy 50 KB-os blokk, egy 150 KB-os blokk, és egy 30 KB-os blokk). Ha egy új program például 400 KB memóriaigényt jelez, akkor bár a rendszer összesen 600 KB szabad memóriát mutat, a szabad helyek széttöredezettek, így nincs egyetlen elég nagy blokk, ami kielégítené az új program igényeit.
Hogyan oldható meg az external fragmentation?
- Memória tömörítés (Compaction): Az operációs rendszer memória tömörítést végezhet, amely során a programok által használt memóriát újrarendezheti, hogy az összes szabad memória egy helyen összegyűljön. Ezzel a technikával a széttöredezett üres helyek összeolvadnak, és a következő program számára elérhetővé válik egy folyamatos szabad memória blokk.
- Virtuális memória és paginálás: A virtuális memória és a lapozás (paging) segíthet a külső fragmentáció problémájának enyhítésében. A lapozás lehetővé teszi, hogy a programok nem a folyamatos memória helyeket használják, hanem az operációs rendszer virtuális memória oldalakra osztja a programokat, így az operációs rendszer sokkal könnyebben kezelheti a memóriát. A virtuális memória esetén a programok nem érzékelik a fizikai memória széttöredezését, mivel a virtuális memória címek bármelyik memóriaterülethez rendelhetők.
- Különböző memória-kezelési technikák: Az operációs rendszerek különböző memória-kezelési technikákat alkalmazhatnak a fragmentáció kezelésére:
- First Fit: Az első megfelelő méretű szabad blokkot választja, amely elég nagy a kívánt memória területhez.
- Best Fit: A legkisebb, de elegendő szabad blokkot választja, hogy minimalizálja a fennmaradó szabad területet.
- Worst Fit: A legnagyobb szabad blokkot választja, hogy elkerülje a túlzott kis darabok maradását.
- Szegmensezés (Segmentation): A szegmensezés másik memória-kezelési technika, amely lehetővé teszi a programok számára, hogy a memóriát logikai szegmensekre osszák (például kód, adatok, verem). A szegmensezés csökkentheti a fragmentációt, mivel a programok külön szegmensekben használják a memóriát, és nem minden adatot ugyanabban a folyamatos területen helyeznek el.
Összegzés:
Az external fragmentation a memória kezelésének problémája, amikor a fizikai memória terület széttöredezik, és a szabad memória helyek nem elegendőek egy nagyobb memória blokkhoz, bár az összes szabad memória elméletileg elegendő. A probléma kezelése érdekében az operációs rendszerek különböző technikákat alkalmaznak, mint például a memória tömörítése, virtuális memória, lapozás, szegmensezés és különböző memória-kezelési algoritmusok, amelyek segítenek csökkenteni a fragmentációt és javítani a memóriahasználatot.
- external fragmentation - Szótár.net (en-hu)
- external fragmentation - Sztaki (en-hu)
- external fragmentation - Merriam–Webster
- external fragmentation - Cambridge
- external fragmentation - WordNet
- external fragmentation - Яндекс (en-ru)
- external fragmentation - Google (en-hu)
- external fragmentation - Wikidata
- external fragmentation - Wikipédia (angol)