In de context van een bestandssysteem is fragmentatie een inefficiënt gebruik van opslagruimte om de inhoud van een enkel bestand op verschillende locaties op een schijf op te slaan in plaats van in een enkele opeenvolgende reeks bits op één plaats. Fragmentatie is een natuurlijk verschijnsel dat zich fysiek voordoet op een harde schijf of soms op een geheugenmodule wanneer de gegevens niet voldoende nauwkeurig op de schijf worden geschreven.
De gegevens worden soms in de verkeerde volgorde geschreven, wat betekent dat de stukjes gegevens niet naast elkaar op de schijf worden geplaatst vanwege het veelvuldige gebruik van bestanden. Deze stukjes gegevens worden fragmenten genoemd. Op een gegeven moment zou het besturingssysteem toegang moeten hebben tot het bestandssysteem om te vinden waar de verschillende fragmenten zich op de schijf bevinden.
Wanneer u bijvoorbeeld een nieuw document maakt, laten we zeggen een woordbestand; het bestand lijkt op één plaats te staan. U kunt het bestand openen, bewerken of verwijderen - wat u maar wilt. Alle activiteiten lijken fysiek te gebeuren op het station, tenminste dat is wat je denkt.
De harde schijf kan mogelijk stukken bestanden opslaan in een deel van het apparaat, maar de rest van de schijf bevindt zich letterlijk ergens anders op het opslagapparaat. Eenvoudig gezegd verwijst fragmentatie naar de verspilde opslagruimte in het bestandssysteem, waardoor een kloof tussen de verschillende delen van een bestand kan worden ontwikkeld.
Fragmentatie vindt in principe plaats in het dynamische geheugentoewijzingssysteem, omdat het te veel ruimte voor het bestand reserveerde, resulterend in open gebieden eromheen.
Het heeft op de een of andere manier betrekking op partitionering van vaste grootte. Het systeem wijst geheugen toe aan verschillende programma's en processen door ze in kleine blokken te verdelen zoals vereist door het programma. Er wordt echter soms meer geheugen toegewezen dan nodig is voor het proces, wat er uiteindelijk toe leidt dat teveel geheugen verloren gaat of ongebruikt blijft.
Geheugen kan bijvoorbeeld alleen worden toegewezen aan programma's in blokken die deelbaar zijn door 4, 8 of 16. Wanneer een proces 24 bytes aanvraagt, krijgt het meestal een blok van 32 bytes, het overschot van 8 bytes blijft ongebruikt. Ongebruikt geheugen bevindt zich dus binnen een specifieke toegewezen locatie en het is zo klein dat een nieuw proces niet kan worden toegewezen, wat resulteert in verspilling. Dit afval wordt aangeduid als interne fragmentatie. Waarschijnlijk de enige manier om dit type fragmentatie te verwijderen is door dynamische geheugentoewijzing.
Het hoofdgeheugen vormt gaten tussen gedeelten van het toegewezen geheugen die te klein zijn om een proces vast te houden. Het is het nadeel van algoritmen voor opslagtoewijzing, wanneer opeenvolgende blokken met ongebruikte spaties geen nieuwe aanvraag kunnen doen omdat de spaties te klein zijn voor grote behoefte aan geheugenapplicaties. In eenvoudige bewoordingen creëren de niet-aangrenzende blokken gaten in het geheugen die resulteren in ongebruikte opslag die zich buiten de toegewezen regio's bevinden, wat betekent dat deze niet samen met het hoofdgeheugen kan worden gebruikt voor grotere geheugentaken. Ze eindigen geïsoleerd en kunnen niet volledig uit de geheugenruimte worden geëlimineerd. Dit wordt externe fragmentatie genoemd. Het kan worden verwijderd door verdichting die de inhoud van het geheugen schudt om alle vrije geheugen samen te plaatsen.
Interne fragmentatie:
Interne fragmentatie verwijst naar extra spaties die verspillen als er meer geheugen aan een proces wordt toegewezen dan nodig is. Dit gebeurt meestal als geheugenblokken met een vast formaat aan de programma's of processen worden toegewezen.
Externe fragmentatie:
Externe fragmentatie daarentegen verwijst naar de ongebruikte ruimten die worden gevormd tussen de aan elkaar grenzende blokken geheugen die niet aan elkaar grenzen.
Interne fragmentatie:
De vrije ruimte die wordt gevormd binnen het toegewezen geheugenblok wanneer het aan het proces toegewezen geheugen groter is dan het door het proces gevraagde geheugen wordt interne fragmentatie genoemd. Het 'interne' verwijst naar de ongebruikte bytes die zich in de grotere geheugenblokken bevinden.
Externe fragmentatie:
Wanneer het hoofdgeheugen gaten vormt die te klein zijn om aan een verzoek te voldoen, wordt dit externe fragmentatie genoemd.
Interne fragmentatie:
De belangrijkste reden waarom interne fragmentatie optreedt, is wanneer het geheugen wordt onderverdeeld in blokken van een vaste grootte .
Externe fragmentatie:
Externe fragmentatie is een verschijnsel dat optreedt wanneer het geheugen wordt verdeeld in blokken van variabele grootte op basis van de grootte van verschillende processen.
Interne fragmentatie:
Interne fragmentatie is een natuurlijk fenomeen dat kan worden geëlimineerd door dynamische geheugentoewijzing die delen van geheugenblokken dynamisch aan processen op hun verzoek toewijst en deze vrijmaakt wanneer ze niet langer nodig zijn tijdens de uitvoering van een programma.
Externe fragmentatie:
Externe fragmentatie daarentegen kan worden geëlimineerd door verdichting, paging en segmentatie zodat geheugen op een niet-aansluitende manier aan een proces kan worden toegewezen.
Zowel interne als externe fragmentatie zijn natuurlijke fenomenen die verband houden met ongebruikte geheugenruimte of geheugen dat wordt verspild. Interne fragmentatie lijdt onder inefficiënte geheugentoewijzing die optreedt wanneer het geheugen dat is toegewezen aan een proces meer is dan wat is aangevraagd, waardoor ongebruikte ruimte in het geheugenblok achterblijft, wat interne fragmentatie veroorzaakt. Nadat het proces uit het fysieke geheugen is verwijderd, wordt hier en daar vrije ruimte gedistribueerd en kunnen geen aangrenzende blokken geheugen worden gevonden, waardoor externe fragmentatie optreedt. Beide verschijnselen kunnen echter worden vermeden. Interne fragmentatie kan worden verminderd door dynamisch geheugen toe te wijzen aan processen, terwijl externe fragmentatie het best kan worden vermeden door verdichting, pagaging en segmentering.