Mind a belső, mind a külső osztályozás befolyásolja a rendszer adatátviteli sebességét. Alapvető különbség van közöttük, azaz a belső fragmentáció akkor történik, ha a folyamat méretét nem érintő fix méretű memóriablokkok vannak hozzárendelve a folyamathoz, és a külső fragmentáció akkor következik be, amikor a folyamatokat dinamikusan osztják fel. Lépjünk tovább és vitassuk meg a belső és külső töredezettség mögötti különbségeket, okokat, megoldásokat az alábbi táblázat segítségével.
Összehasonlító táblázat
Az összehasonlítás alapja | Belső töredezettség | Külső töredezettség |
---|---|---|
Alapvető | Ez akkor fordul elő, ha a rögzített méretű memóriablokkok a folyamatokhoz vannak hozzárendelve. | Ez akkor fordul elő, ha a változó méretű memóriaterület dinamikusan van hozzárendelve a folyamatokhoz. |
Esemény | Ha a folyamathoz hozzárendelt memória valamivel nagyobb, mint a folyamat által kért memória, ez szabad teret hoz létre a hozzárendelt blokkban, ami belső fragmentációt okoz. | Amikor a folyamatot eltávolítják a memóriából, a szabad helyet hozza létre a memóriában, ami külső fragmentációt eredményez. |
Megoldás | A memóriát különböző méretű blokkokba kell osztani, és hozzárendelni a folyamathoz legmegfelelőbb blokkot. | Tömörítés, lapozás és szegmentálás. |
A belső töredezettség meghatározása
A belső töredezettség akkor fordul elő, ha a memória fix méretű blokkokba van osztva. Ha a folyamatra vonatkozó kérelem a memóriához, a fix méretű blokkot hozzárendelik a folyamathoz. Abban az esetben, ha a folyamathoz rendelt memória valamivel nagyobb, mint a kért memória, akkor a hozzárendelt és a kért memória közötti különbség a belső fragmentáció .
Ez a megmaradt tér a fix méretű blokkban nem rendelhető semmilyen folyamathoz, mivel nem lenne elégséges a memória igényének kielégítésére a folyamat során. Megértjük a belső fragmentációt egy példa segítségével. A memóriaterület 18, 464 bájtos rögzített méretű blokkokba van osztva. Tegyük fel, hogy a folyamathoz egy 18.460 bájtos és 18, 464 bájtos osztott fix méretű blokk folyamatkérelmét rendeljük. Az eredmény 4 bájt 18.464 bájt maradt üres, ami a belső fragmentáció.
A belső töredezettség miatt létrejött belső lyuk nyomon követése lényegesen nagyobb, mint a belső lyukak száma. A belső fragmentáció problémája megoldható úgy, hogy a memóriát a változó méretű blokkba osztjuk, és a memóriát kérő folyamathoz hozzárendeljük a legjobb méretű blokkot. Mégis, ez nem fogja teljesen megszüntetni a belső töredezettség problémáját, de bizonyos mértékig csökkenti.
A külső töredezettség meghatározása
A külső fragmentáció akkor következik be, amikor elegendő hely van a memóriában, hogy kielégítse a folyamat memória igényét. A folyamat memóriájának kérése azonban nem teljesíthető, mivel a rendelkezésre álló memória nem egymással összefüggő módon történik. Először illeszkedő vagy legjobban illeszkedő memóriaelosztási stratégiát alkalmaz, amely külső fragmentációt okoz.
Amikor egy folyamatot betöltünk és eltávolítunk a memóriából, a szabad tér létrehozza a memóriában a lyukat, és sok ilyen lyuk van a memóriaterületen, ezt Külső fragmentációnak nevezzük. Bár az első illeszkedés és a legjobb illeszkedés befolyásolhatja a külső töredezettség mértékét, nem lehet teljesen megszüntetni. A tömörítés lehet a külső fragmentáció megoldása.
A tömörítési algoritmus az összes memória tartalmát egy oldalra keveri, és egy nagy memóriablokkot szabadít fel. De a tömörítési algoritmus drága. Van egy alternatív megoldás a külső töredezettség kérdésének megoldására, amely lehetővé teszi, hogy a folyamat fizikai memóriát szerezzen be egymással összefüggő módon. A megoldás eléréséhez szükséges technikák a lapozás és a szegmentálás.
A belső és külső fragmentáció közötti fő különbségek
- A belső és külső töredezettség előfordulásának fő oka, hogy a belső töredezettség akkor történik, amikor a memóriát fix méretű blokkokba osztjuk, míg a külső fragmentáció akkor történik, amikor a memóriát változó méretű blokkokba osztjuk .
- Ha a folyamathoz hozzárendelt memóriablokk kicsit nagyobb, mint a kért memória, akkor a kijelölt memóriablokkban maradt szabad hely belső fragmentációt okoz. Másrészt, amikor a folyamatot eltávolítják a memóriából, szabad helyet hoz létre, ami a memóriában egy lyukat okoz, amelyet külső fragmentációnak neveznek.
- A belső fragmentáció problémája megoldható úgy, hogy a memóriát változó méretű blokkokba osztjuk, és a kérő folyamathoz hozzárendeljük a legmegfelelőbb blokkot. A külső töredezettség megoldása azonban a tömörítés, de költséges a megvalósítás, így a folyamatoknak lehetővé kell tenni, hogy fizikai memóriát szerezzenek nem egymással összefüggő módon, ennek elérése érdekében a lapozás és a szegmentálás technikája kerül bevezetésre.
Következtetés:
A belső töredezettség problémája csökkenthető, de nem lehet teljesen megszüntetni. A lapozás és a szegmentálás segít a külső töredezettség következtében felszabaduló tér kihasználásában azzal, hogy lehetővé teszi, hogy a folyamat a memóriát nem egymással összefüggő módon foglalja el.