Interná vs. externá fragmentácia
Rozdiel medzi vnútornou a vonkajšou fragmentáciou je predmetom záujmu mnohých ľudí, ktorí si chcú zdokonaliť svoje počítačové znalosti. Pred poznaním tohto rozdielu musíme zistiť, čo je to fragmentácia. Fragmentácia je jav, ktorý sa vyskytuje v pamäti počítača, napríklad v pamäti Random Access Memory (RAM) alebo na pevných diskoch, a spôsobuje plytvanie a neefektívne využitie voľného miesta. Aj keď je bránené efektívnemu využívaniu dostupného priestoru, spôsobuje to tiež problémy s výkonom. K vnútornej fragmentácii dochádza, keď je alokácia pamäte založená na oddieloch s pevnou veľkosťou, kde po priradení aplikácie malej veľkosti k slotu zostáva zbytočné zvyšné voľné miesto v danom slote. Externá fragmentácia nastáva, keď je pamäť dynamicky alokovaná, kde po načítaní a vykladaní niekoľkých slotov sa tu a tam voľné miesto distribuuje, a nie súvisle.
Čo je to vnútorná fragmentácia?
Zvážte obrázok vyššie, kde sa dodržiava mechanizmus prideľovania pamäte pevnej veľkosti. Spočiatku je pamäť prázdna a prideľovač rozdelil pamäť na oddiely pevnej veľkosti. Neskôr boli do prvých troch oddielov načítané tri programy s názvom A, B, C, zatiaľ čo štvrtý oddiel je stále voľný. Program A zodpovedá veľkosti oddielu, takže v tomto oddiele nedochádza k plytvaniu, ale program B a program C sú menšie ako veľkosť oddielu. Takže v časti ition 2 a oddiele 3 zostáva zvyšné voľné miesto. Toto voľné miesto je však nepoužiteľné, pretože alokátor pamäte priraďuje programom iba úplné oddiely, ale nie ich časti. Toto plytvanie voľným priestorom sa nazýva vnútorná fragmentácia.
Vo vyššie uvedenom príklade sú to rovnako veľké pevné oddiely, ale to sa môže dokonca stať v situácii, keď sú k dispozícii oddiely rôznych pevných veľkostí. Pamäť alebo najťažšie miesto je zvyčajne rozdelené do blokov, ktoré majú zvyčajne veľkosť síl 2, napríklad 2, 4, 8, 16 bajtov. Program alebo súbor 3 bajtov bude teda priradený k bloku 4 bajtov, ale jeden bajt tohto bloku sa stane nepoužiteľným, čo spôsobí vnútornú fragmentáciu.
Čo je to vonkajšia fragmentácia?
Zvážte obrázok vyššie, kde sa alokácia pamäte vykonáva dynamicky. Pri dynamickom prideľovaní pamäte alokátor prideľuje iba presnú potrebnú veľkosť pre tento program. Prvá pamäť je úplne zadarmo. Potom sa postupne načítajú programy A, B, C, D a E rôznych veľkostí a v tomto poradí sa ukladajú súvisle do pamäte. Potom sa program A a program C zatvoria a vyložia sa z pamäte. Teraz sú v pamäti tri oblasti voľného priestoru, ktoré však nesusedia. Teraz sa načíta veľký program s názvom Program F, ale ani jeden blok voľného miesta nestačí na program F. Pridanie všetkých voľných priestorov je určite dostatočné na program F, ale kvôli nedostatku susedstva je tento priestor nepoužiteľné pre program F. Toto sa nazýva externá fragmentácia.
Aký je rozdiel medzi internou a externou fragmentáciou?
• K vnútornej fragmentácii dochádza, keď sa použije technika alokácie pamäte pevnej veľkosti. Externá fragmentácia nastáva, keď sa použije technika dynamického prideľovania pamäte.
• K vnútornej fragmentácii dôjde, keď je oddiel s pevnou veľkosťou priradený k programu / súboru s menšou veľkosťou ako oddiel, čo spôsobuje, že zvyšok priestoru v tomto oddiele je nepoužiteľný. Vonkajšia fragmentácia je spôsobená nedostatkom dostatočného susedného priestoru po načítaní a vykladaní programov alebo súborov na nejaký čas, pretože potom je všetok voľný priestor distribuovaný sem a tam.
• Vonkajšiu fragmentáciu je možné vyťažiť zhutnením, kde sa pridelené bloky presunú na jednu stranu, aby sa získal súvislý priestor. Táto operácia však vyžaduje čas a tiež určité kriticky priradené oblasti, napríklad systémové služby, nemožno bezpečne presunúť. Tento krok zhutňovania môžeme sledovať na pevných diskoch pri spustení defragmentácie disku v systéme Windows.
• Vonkajšej fragmentácii možno zabrániť mechanizmami, ako je segmentácia a stránkovanie. Tu je daný logický súvislý priestor virtuálnej pamäte, zatiaľ čo v skutočnosti sú súbory / programy rozdelené na časti a umiestnené sem a tam.
• Vnútorná fragmentácia môže byť zmrzačená tým, že má oddiely niekoľkých veľkostí a priraďuje program na základe najlepšieho prispôsobenia. Stále však nie je úplne vylúčená vnútorná fragmentácia.
Zhrnutie:
Interná vs. externá fragmentácia
Interná fragmentácia aj externá fragmentácia sú fenomény, pri ktorých sa míňa pamäť. K internej fragmentácii dochádza pri alokácii pamäte s pevnou veľkosťou, zatiaľ čo k externej fragmentácii dochádza pri dynamickom alokovaní pamäte. Keď je pridelený oddiel obsadený programom, ktorý je menší ako oddiel, zostane zbytočné zvyšné miesto, čo spôsobí vnútornú fragmentáciu. Ak po načítaní a vyložení programov nie je možné nájsť dostatok susedného priestoru, spôsobí to to, že sa tu a tam distribuuje voľné miesto, čo spôsobí externú fragmentáciu. K fragmentácii môže dôjsť v akomkoľvek pamäťovom zariadení, ako je RAM, pevný disk a flash disky.