Verschil tussen interne en externe fragmentatie | Interne versus externe fragmentering

Anonim

Interne versus externe fragmentering

Verschil tussen interne en externe fragmentatie is een onderwerp van belang voor velen die hun computerkennis graag willen verbeteren. Voordat we dit verschil kennen, moeten we zien wat fragmentatie is. Fragmentatie is een fenomeen dat zich voordoet in computergeheugen, zoals Random Access Memory (RAM) of harde schijven, waardoor de vrije ruimte onvoldoende wordt gebruikt. Hoewel het efficiënte gebruik van beschikbare ruimte wordt belemmerd, veroorzaakt dit ook prestatieproblemen. Interne fragmentatie vindt plaats wanneer de geheugentoewijzing gebaseerd is op partities van vaste afmetingen waar na een kleine grootte applicatie is toegewezen aan een sleuf de overgebleven vrije ruimte van die sleuf is verspild. Externe fragmentatie vindt plaats wanneer het geheugen dynamisch wordt toegewezen, waar na het laden en lossen van meerdere sleuven hier en daar de vrije ruimte wordt verspreid, in plaats van er aan te sluiten.

Wat is interne fragmentatie?

Beschouw bovenstaande figuur waar een geheugentetoewijzingsmechanisme met vaste grootte wordt gevolgd. In eerste instantie is het geheugen leeg en de allocator heeft het geheugen verdeeld in vaste grootte partities. Vervolgens worden drie programma's genaamd A, B, C geladen naar de eerste drie partities terwijl de 4e partitie nog steeds vrij is. Programma A komt overeen met de grootte van de partitie, dus er is geen verspilling in die partitie, maar Programma B en Program C zijn kleiner dan de partitiegrootte. Dus in deel 2 en 3 is er nog een vrije ruimte. Deze vrije ruimte is echter onbruikbaar, aangezien de geheugen allocator alleen volledige partities toewijst aan programma's maar geen t delen daarvan. Dit vermorsing van vrije ruimte heet interne fragmentatie.

In het bovenstaande voorbeeld zijn er vaste partities van gelijke grootte, maar dit kan zelfs gebeuren in een situatie waarin partities van verschillende vaste maten beschikbaar zijn. Meestal is het geheugen of de moeilijkste ruimte verdeeld in blokken die meestal de grootte van de bevoegdheden van 2 zijn, zoals 2, 4, 8, 16 bytes. Dus een programma of een bestand van 3 bytes wordt toegewezen aan een 4 byte-blok, maar één byte van dat blok wordt onbruikbaar waardoor interne fragmentatie wordt veroorzaakt.

Wat is externe fragmentatie?

Beschouw bovenstaande figuur waar de geheugenverdeling dynamisch wordt uitgevoerd. Bij de dynamische geheugentetoewijzing wijst de allocator alleen de exacte benodigde grootte voor dat programma toe.Eerste geheugen is helemaal gratis. Vervolgens worden de programma's A, B, C, D en E van verschillende afmetingen geladen, en worden ze in die volgorde bij elkaar geplaatst in die volgorde. Daarna sluiten Program A en Program C en worden ze uit het geheugen gelost. Nu zijn er drie vrije ruimte gebieden in het geheugen, maar ze zijn niet aangrenzend. Nu wordt een groot programma genaamd Program F geladen, maar geen van het vrije ruimteblok is onvoldoende voor Programma F. De toevoeging van alle vrije ruimtes is zeker genoeg voor Program F, maar door het gebrek aan adjacency is deze ruimte onbruikbaar voor programma F. Dit heet externe fragmentatie.

Wat is het verschil tussen interne en externe fragmentering?

• Interne Fragmentatie treedt op wanneer een vaste toewijzingstechniek wordt gebruikt. Externe fragmentatie treedt op wanneer een dynamische geheugen allocatietechniek wordt gebruikt.

• Interne fragmentatie vindt plaats wanneer een vaste-grootte partitie is toegewezen aan een programma / bestand met minder formaat dan de partitie waardoor de rest van de ruimte in die partitie onbruikbaar is. Externe fragmentatie is te wijten aan het gebrek aan voldoende aangrenzende ruimte na het laden en lossen van programma's of bestanden voor enige tijd, want dan wordt alle vrije ruimte hier en daar verspreid.

• Externe fragmentatie kan worden geminimaliseerd door compressie waarbij de toegewezen blokken naar de ene kant worden verplaatst, zodat de aangrenzende ruimte wordt behaald. Deze operatie duurt echter tijd en ook bepaalde kritische toegewezen gebieden, bijvoorbeeld, kan systeemdiensten niet veilig worden verplaatst. We kunnen deze compactie stap op harde schijven volgen wanneer u de diskdefragmentatie in Windows uitvoert.

• Externe fragmentatie kan voorkomen worden door mechanismen zoals segmentatie en paging. Hier wordt een logische aaneengesloten virtuele geheugenruimte gegeven, terwijl de bestanden / programma's in werkelijkheid in delen worden gesplitst en hier en daar geplaatst worden.

• Interne fragmentatie kan worden geminimaliseerd door partities van verschillende maten te hebben en een programma toe te wijzen op basis van de beste pasvorm. Echter, interne fragmentatie is nog niet helemaal verwijderd.

Samenvatting:

Interne versus externe fragmentering

Zowel interne fragmentatie als externe fragmentatie zijn fenomenen waar het geheugen verspild wordt. Interne fragmentatie vindt plaats in de vaste toewijzing van vaste grootte, terwijl externe fragmentatie optreedt in dynamische geheugen allocatie. Wanneer een toegewezen partitie wordt bezet door een programma dat kleiner is dan de partitie, wordt de resterende ruimte verspild waardoor interne fragmentatie wordt veroorzaakt. Wanneer er niet genoeg aangrenzende ruimte kan worden gevonden na het laden en lossen van programma's, veroorzaakt door het feit dat vrije ruimte hier en daar wordt verspreid, dit externe fragmentatie veroorzaakt. Fragmentatie kan zich voordoen in elk geheugenapparaat, zoals RAM, harde schijf en flash drives.