Zowel de interne als externe classificatie beïnvloedt de toegangssnelheid van gegevens van het systeem. Ze hebben een fundamenteel verschil daartussen. Dat wil zeggen dat interne fragmentatie optreedt wanneer geheugenblokken met een vast formaat aan het proces worden toegewezen zonder dat de grootte van het proces in het geding is, en externe fragmentatie optreedt wanneer de processen dynamisch dynamisch worden toegewezen. Laten we verder gaan en de verschillen, redenen, oplossingen achter interne en externe fragmentatie bespreken met behulp van de onderstaande vergelijkingsgrafiek.
Vergelijkingstabel
Basis voor vergelijking | Interne fragmentatie | Externe fragmentatie |
---|---|---|
basis- | Dit gebeurt wanneer geheugenblokken met een vast formaat aan de processen worden toegewezen. | Dit gebeurt wanneer geheugenruimten met een variabel formaat dynamisch aan de processen worden toegewezen. |
voorval | Wanneer het aan het proces toegewezen geheugen iets groter is dan het door het proces gevraagde geheugen, creëert dit vrije ruimte in het toegewezen blok, wat interne fragmentatie veroorzaakt. | Wanneer het proces uit het geheugen wordt verwijderd, creëert het de vrije ruimte in het geheugen die externe fragmentatie veroorzaakt. |
Oplossing | Het geheugen moet worden verdeeld in blokken van variabele grootte en het best passende blok aan het proces toewijzen. | Verdichting, paging en segmentatie. |
Definitie van interne fragmentatie
Interne fragmentatie treedt op wanneer het geheugen is verdeeld in blokken van een vaste grootte . Wanneer een procesverzoek voor het geheugen wordt toegewezen, wordt het blok met vaste afmetingen aan het proces toegewezen. Als het geheugen dat aan het proces is toegewezen iets groter is dan het gevraagde geheugen, is het verschil tussen toegewezen en aangevraagde geheugen de interne fragmentatie .
Deze overgebleven ruimte binnen het blok met de vaste grootte kan niet aan een proces worden toegewezen, omdat het niet voldoende zou zijn om aan het verzoek van het geheugen door het proces te voldoen. Laten we interne fragmentatie begrijpen met behulp van een voorbeeld. De geheugenruimte is verdeeld in de blokken met een vaste grootte van 18.464 bytes. Laten we zeggen dat een procesaanvraag voor 18.460 bytes en een gepartitioneerd blok van 18, 464 bytes met een vast formaat aan het proces wordt toegewezen. Het resultaat is dat 4 bytes van 18, 464 bytes leeg bleven wat de interne fragmentatie is.
De overhead van het bijhouden van het inwendige gat dat is gecreëerd als gevolg van interne fragmentatie is aanzienlijk meer dan het aantal interne gaten. Het probleem van interne fragmentatie kan worden opgelost door het geheugen te partitioneren in het blok met variabele afmetingen en het blok van de beste grootte toe te wijzen aan een proces dat om het geheugen vraagt. Toch zal het probleem van interne fragmentatie niet volledig verdwijnen, maar zal het tot op zekere hoogte verminderen.
Definitie van externe fragmentatie
Externe fragmentatie vindt plaats wanneer er voldoende ruimte in het geheugen is om aan de geheugenaanvraag van een proces te voldoen. Maar aan het geheugenverzoek van het proces kan niet worden voldaan omdat het beschikbare geheugen niet-aangrenzend is. Ofwel past u first-fit of best-fit geheugentoewijzingsstrategie toe, het veroorzaakt externe fragmentatie.
Wanneer een proces wordt geladen en uit het geheugen wordt verwijderd, creëert de vrije ruimte het gat in de geheugenruimte en zijn er veel van dergelijke gaten in de geheugenruimte, dit wordt Externe fragmentatie genoemd. Hoewel de eerste fit en de beste fit de hoeveelheid externe fragmentatie kan beïnvloeden, kan deze niet volledig worden geëlimineerd. Verdichting kan de oplossing zijn voor externe fragmentatie.
Verdichtingsalgoritme schudt alle geheugeninhoud opzij en maakt één groot blok geheugen vrij. Maar verdichtingsalgoritme is duur. Er is een alternatieve oplossing om problemen met externe fragmentatie op te lossen, waardoor een proces het fysieke geheugen op een niet-aansluitende manier kan verwerven. De technieken om deze oplossing te bereiken zijn paging en segmentatie.
Belangrijkste verschillen tussen interne en externe fragmentatie
- De belangrijkste reden achter de voorvallen van interne en externe fragmentatie is dat interne fragmentatie optreedt wanneer het geheugen wordt gepartitioneerd in blokken van een vaste grootte, terwijl externe fragmentatie optreedt wanneer het geheugen wordt gepartitioneerd in blokken van variabele grootte .
- Als het geheugenblok toegewezen aan het proces iets groter is dan het gevraagde geheugen, veroorzaakt de vrije ruimte in het toegewezen geheugenblok interne fragmentatie. Aan de andere kant, als het proces uit het geheugen wordt verwijderd, creëert het vrije ruimte die een gat in het geheugen veroorzaakt dat externe fragmentatie wordt genoemd.
- Het probleem van interne fragmentatie kan worden opgelost door het geheugen te partitioneren in blokken van variabele grootte en het best passende blok toe te wijzen aan het verzoekende proces. De oplossing voor externe fragmentatie is echter verdichting, maar het is duur om te implementeren, dus de processen moeten worden toegestaan om fysiek geheugen te verwerven op een niet-aansluitende manier, om dit te bereiken wordt de techniek van paging en segmentatie geïntroduceerd.
Conclusie:
Het probleem van interne fragmentatie kan worden verminderd, maar het kan niet volledig worden geëlimineerd. De paging en segmentatie helpen bij het gebruik van de ruimte die wordt vrijgemaakt door externe fragmentatie doordat een proces het geheugen op een niet-aansluitende manier kan innemen.