Разлика између унутрашње и екстерне фрагментације тема је која занима многе који воле да побољшају своје знање о рачунару. Пре него што сазнамо ову разлику, морамо да видимо шта је то фрагментација. Фрагментација је појава која се јавља у меморији рачунара, попут РАМ-а или случајних дискова, што узрокује расипање и неефикасно коришћење слободног простора. Иако је отежано ефикасно коришћење расположивог простора, то узрокује и проблеме са перформансама. Унутрашња фрагментација настаје када се додељивање меморије заснива на партицијама фиксне величине, где након што је апликација мале величине додељена утору, преостали слободни простор тог утора се троши. Вањска фрагментација настаје када се меморија динамички распоређује, гдје се након утовара и истовара неколико слотова ту и тамо расподјељује слободни простор, а не да се непрестано.
Размотрите горњу слику где се следи механизам за доделу меморије фиксне величине. У почетку је меморија празна и алокатор је поделио меморију на партиције фиксне величине. Затим су три програма под називом А, Б, Ц учитана у прве три партиције, док је четврта партиција још увек слободна. Програм А одговара величини партиције, тако да у тој партицији нема расипања, али су програм Б и програм Ц мањи од величине партиције. Дакле, у делу 2 и партицији 3 остаје слободан простор. Међутим, овај слободни простор је неупотребљив јер алокатор меморије програмима додељује само потпуно партиције програмима, али не и његове делове. Ово губљење слободног простора називамо унутрашњом фрагментацијом.
У горњем примеру то су фиксне партиције једнаке величине, али то се може догодити и у ситуацији када су доступне партиције различитих величина. Обично је меморија или најтежи простор подељен на блокове који су обично величине 2, попут 2, 4, 8, 16 бајта. Дакле, програм или датотека од 3 бајта биће додељена блоку од 4 бајта, али један бајт тог блока ће постати неупотребљив изазивајући унутрашњу фрагментацију.
Размотрите горњу слику где се додељивање меморије врши динамично. У динамичкој расподјели меморије, алокатор распоређује само тачно потребну величину за тај програм. Прво памћење је потпуно бесплатно. Тада се програми А, Б, Ц, Д и Е различитих величина учитавају један за другим и постављају се у меморију непрекидно тим редоследом. Затим се програм А и програм Ц затварају и уклањају се из меморије. Сада постоје три слободна простора у меморији, али она нису суседна. Сад ће се учитати велики програм зван Програм Ф, али ни један блок слободног простора није довољан за Програм Ф. Додавање свих слободних простора дефинитивно је довољно за Програм Ф, али због недостатка адекватности тај простор је неупотребљив за Програм Ф. То се назива спољна фрагментација.
• Унутрашња фрагментација настаје када се користи техника расподјеле меморије фиксне величине. Екстерна фрагментација настаје када се користи динамичка техника расподјеле меморије.
• Унутрашња фрагментација настаје када је партиција фиксне величине додијељена програму / датотеци мање величине од партиције што чини остатак простора у тој партицији неупотребљивим. Спољна фрагментација настаје због недостатка довољно суседног простора након укрцавања и истовара програма или датотека неко време јер се тада ту и тамо дистрибуира сав слободни простор..
• Спољна фрагментација се може минирати сабијањем где се додељени блокови померају на једну страну, тако да се добије суседни простор. Међутим, за ову операцију је потребно време и такође се одређена критична додељена подручја, на пример системске услуге, не могу безбедно преместити. Можемо посматрати овај корак сабијања који се врши на чврстим дисковима приликом покретања дефрагментера диска у оперативном систему Виндовс.
• Спољна фрагментација се може спречити механизмима као што су сегментација и позивање. Овде је дат логички непрекидни простор виртуалне меморије док су у стварности датотеке / програми подељени на делове и смештени ту и тамо.
• Унутрашња фрагментација се може поправити тако што ћете имати партиције више величина и доделити програм на основу најбољег прилагођавања. Ипак, још увек унутрашња фрагментација није у потпуности елиминисана.
Резиме:
И унутрашња фрагментација и екстерна фрагментација су феномени где се памћење троши. Унутрашња фрагментација догађа се у додељивању меморије фиксне величине, док се спољна фрагментација догађа у динамичкој додељивању меморије. Када додијељена партиција заузима програм који је мањи од партиције, преостали простор губи се узрокујући унутрашњу фрагментацију. Када се не нађе довољно суседног простора након утовара и истовара програма, због чињенице да се овде и тамо дистрибуира слободни простор, то изазива спољну фрагментацију. Фрагментација се може појавити на било којем меморијском уређају као што су РАМ, хард диск и Фласх драјвови.