Разлика между вътрешната и външната фрагментация

Вътрешна срещу външна фрагментация
 

Разликата между вътрешната и външната фрагментация е тема, която интересува много хора, които обичат да подобрят своите компютърни познания. Преди да знаем тази разлика, трябва да видим какво е фрагментацията. Фрагментацията е явление, което се среща в компютърната памет като RAM памет или случайни дискове, което причинява разхищение и неефективно използване на свободното пространство. Въпреки че е възпрепятствано ефективното използване на наличното пространство, това също води до проблеми с производителността. Вътрешната фрагментация възниква, когато разпределението на паметта се основава на дялове с фиксиран размер, където след като приложението с малък размер е присвоено на слота, останалото свободно пространство на този слот се губи. Външна фрагментация възниква, когато паметта се разпределя динамично, където след зареждане и разтоварване на няколко слота тук-там се разпределя свободното пространство, а не е непрекъснато.

Какво е вътрешна фрагментация?

Помислете върху фигурата по-горе, където се следва механизъм за разпределение на памет с фиксиран размер. Първоначално паметта е празна и разпределителят е разделил паметта на дялове с фиксиран размер. Тогава по-късно три програми, наречени A, B, C, се зареждат в първите три дяла, докато четвъртият дял все още е свободен. Програма A съответства на размера на дяла, така че няма разхищение в този дял, но програма B и програма C са по-малки от размера на дяла. Така че в част 2 и дял 3 остава свободно пространство. Това свободно пространство обаче е неизползваемо, тъй като разпределителят на паметта присвоява само пълни дялове на програми, но няма t части от него. Тази загуба на свободно пространство се нарича вътрешна фрагментация.

В горния пример става дума за фиксирани дялове с еднакъв размер, но това може да се случи дори в ситуация, когато са налични дялове с различни фиксирани размери. Обикновено паметта или най-трудното пространство се разделя на блокове, които обикновено са с размер на мощността от 2, като 2, 4, 8, 16 байта. Така програма или файл от 3 байта ще бъде присвоена на 4-байтов блок, но един байт от този блок ще стане неизползваем, причинявайки вътрешна фрагментация.

Какво е външна фрагментация?

Помислете върху фигурата по-горе, където разпределението на паметта се извършва динамично. При динамично разпределение на паметта разпределителят разпределя само точния необходим размер за тази програма. Първата памет е напълно безплатна. Тогава програмите A, B, C, D и E с различни размери се зареждат една след друга и те се поставят в паметта непрекъснато в този ред. След това програма A и Program C се затварят и те се разтоварват от паметта. Сега има три свободни пространства в паметта, но те не са съседни. Сега ще се зареди голяма програма, наречена Program F, но нито един от блоковете за свободно пространство не е достатъчен за програма F. Добавянето на всички свободни пространства определено е достатъчно за програма F, но поради липсата на прилежащо пространство това място е неизползваем за програма F. Това се нарича Външна фрагментация.

Каква е разликата между вътрешната и външната фрагментация?

• Вътрешна фрагментация възниква, когато се използва техника за разпределение на памет с фиксиран размер. Външна фрагментация възниква, когато се използва техника за динамично разпределение на паметта.

• Вътрешна фрагментация възниква, когато дял с фиксиран размер е присвоен на програма / файл с по-малък размер от дяла, което прави останалата част от пространството в този дял неизползваема. Външната фрагментация се дължи на липсата на достатъчно съседно пространство след зареждане и разтоварване на програми или файлове за известно време, защото тогава цялото свободно пространство се разпределя тук-там.

• Външната фрагментация може да бъде извлечена чрез уплътняване, когато зададените блокове са преместени на една страна, така че да се получи съседно пространство. Тази операция обаче отнема време и също така определени критично зададени области, например системни услуги, не могат да бъдат преместени безопасно. Можем да наблюдаваме тази стъпка на уплътняване, направена на твърди дискове, когато стартирате дефрагментатора на дискове в Windows.

• Външната фрагментация може да бъде предотвратена чрез механизми като сегментиране и пейджинг. Тук е дадено логично съседно пространство за виртуална памет, докато в действителност файловете / програмите се разделят на части и се поставят тук-там.

• Вътрешната фрагментация може да бъде осакатена чрез разделяне на няколко размера и присвояване на програма въз основа на най-доброто прилягане. Все още обаче вътрешната фрагментация не е елиминирана напълно.

Резюме:

Вътрешна срещу външна фрагментация

Както вътрешната фрагментация, така и външната фрагментация са явления, при които се губи паметта. Вътрешната фрагментация се извършва при разпределение на памет с фиксиран размер, докато външната фрагментация се извършва при динамично разпределение на паметта. Когато разпределеният дял е зает от програма, която е по-малка от дяла, останалото пространство се губи, което води до вътрешна фрагментация. Когато след зареждане и разтоварване на програми не може да се намери достатъчно съседно пространство, поради факта, че тук и там се разпределя свободно пространство, това причинява външна фрагментация. Фрагментацията може да се появи във всяко устройство с памет като RAM, твърд диск и флаш устройства.