Вътрешна срещу външна фрагментация
Разликата между вътрешната и външната фрагментация е тема, интересуваща много хора, които обичат да подобряват своите компютърни познания. Преди да знаем тази разлика, трябва да видим какво е фрагментация. Фрагментацията е явление, което се случва в компютърната памет като памет с произволен достъп (RAM) или твърди дискове, което причинява загуба и неефективно използване на свободно пространство. Въпреки че ефективното използване на наличното пространство е възпрепятствано, това също води до проблеми с производителността. Вътрешна фрагментация възниква, когато разпределението на паметта се основава на дялове с фиксиран размер, където след присвояване на малък размер на слот оставащото свободно пространство на този слот се губи. Външната фрагментация възниква, когато паметта се разпределя динамично, където след зареждане и разтоварване на няколко слота тук и там свободното пространство се разпределя, вместо да е съседно.
Какво е вътрешна фрагментация?
Помислете за фигурата по-горе, където се следва механизъм за разпределение на памет с фиксиран размер. Първоначално паметта е празна и разпределителят я е разделил на дялове с фиксиран размер. След това по-късно три програми с име A, B, C са заредени в първите три дяла, докато 4-тият дял е все още безплатен. Програма А съвпада с размера на дяла, така че няма загуба в този дял, но Програма Б и Програма С са по-малки от размера на дяла. Така че в част 2 и дял 3 остава останалото свободно пространство. Това свободно пространство обаче е неизползваемо, тъй като разпределителят на паметта само присвоява пълни дялове на програми, но няма t части от него. Това разхищение на свободно пространство се нарича вътрешна фрагментация.
В горния пример това са фиксирани дялове с еднакъв размер, но това дори може да се случи в ситуация, в която са налични дялове с различни фиксирани размери. Обикновено паметта или най-трудното пространство се разделят на блокове, които обикновено са с размер на степента 2, като 2, 4, 8, 16 байта. Така че програма или файл от 3 байта ще бъдат присвоени на 4 байтов блок, но един байт от този блок ще стане неизползваем, причинявайки вътрешна фрагментация.
Какво представлява външната фрагментация?
Помислете за фигурата по-горе, където разпределението на паметта се извършва динамично. При динамично разпределение на паметта разпределителят разпределя само точно необходимия размер за тази програма. Първата памет е напълно безплатна. След това програмите A, B, C, D и E с различни размери се зареждат една след друга и те се поставят в паметта непрекъснато в този ред. След това по-късно Програма А и Програма С се затварят и те се разтоварват от паметта. Сега има три свободни пространства в паметта, но те не са съседни. Сега ще се зареди голяма програма, наречена Program F, но нито един от блоковете за свободно пространство не е достатъчен за програма F. Добавянето на всички свободни пространства определено е достатъчно за програма F, но поради липсата на съседство, това пространство е неизползваем за програма F. Това се нарича Външна фрагментация.
Каква е разликата между вътрешната и външната фрагментация?
• Вътрешна фрагментация възниква, когато се използва техника за разпределение на памет с фиксиран размер. Външната фрагментация възниква, когато се използва динамична техника за разпределение на паметта.
• Вътрешна фрагментация възниква, когато дял с фиксиран размер е присвоен на програма / файл с по-малък размер от дяла, което прави останалото пространство в този дял неизползваемо. Външната фрагментация се дължи на липсата на достатъчно съседно пространство след зареждане и разтоварване на програми или файлове за известно време, защото тогава цялото свободно пространство се разпределя тук и там.
• Външната фрагментация може да се добие чрез уплътняване, където зададените блокове се преместват на една страна, така че да се спечели непрекъснато пространство. Тази операция обаче отнема време и също така определени критично определени области, например системни услуги, не могат да бъдат преместени безопасно. Можем да наблюдаваме тази стъпка на уплътняване, извършена на твърди дискове, когато стартираме дефрагментатора на диска в Windows.
• Външната фрагментация може да бъде предотвратена чрез механизми като сегментиране и пейджинг. Тук е дадено логично непрекъснато пространство за виртуална памет, докато в действителност файловете / програмите са разделени на части и поставени тук и там.
• Вътрешната фрагментация може да бъде осакатена, като има дялове с няколко размера и задаване на програма въз основа на най-доброто напасване. Все още обаче вътрешната фрагментация не е напълно елиминирана.
Резюме:
Вътрешна срещу външна фрагментация
Както вътрешната, така и външната фрагментация са явления, при които паметта се губи. Вътрешното фрагментиране възниква при разпределяне на памет с фиксиран размер, докато външното фрагментиране възниква при динамично разпределение на паметта. Когато разпределен дял е зает от програма, която е по-малка от дяла, оставащото пространство се губи, причинявайки вътрешна фрагментация. Когато след зареждане и разтоварване на програми не може да се намери достатъчно съседно пространство, поради факта, че свободното пространство се разпределя тук и там, това причинява външна фрагментация. Фрагментацията може да възникне във всяко устройство с памет, като RAM, твърд диск и флаш устройства.