Skip to main content

Wat is een gratis lijst?

Een gratis lijst is een gegevensstructuur die de adressen van computergeheugenlocaties bevat die beschikbaar zijn voor gebruik door een hardloopprogramma bij het gebruik van dynamische geheugentoewijzing. De lijst wordt noodzakelijk wanneer een programma moet worden toegewezenruimte uit een gebied van vrij geheugen genaamd de heap. De implementatie van een vrije lijst kan een eenvoudige gekoppelde lijst zijn of een complexere gegevensstructuur kunnen zijn, zoalseen sorteerboom. De meeste computerprogrammeertalen op hoog niveau verwerken automatisch de gratis lijst, waarbij de behoefte aan handmatig beheer wordt verwijderd.

Wanneer een programma ruimte vereist om informatie op te slaan tijdens de uitvoering van het programma,Moet een specifiek aantal geheugen aanvragen bij het onderliggende besturingssysteem. De locaties van geheugenblokken die kunnen worden gebruikt, worden opgeslagen in de vrije lijst. Voor de toewijzing om succesvol te zijn, is de hoeveelheid gevraagd geheugenmoet beschikbaar zijn in een of meer van deze blokken. Wanneer een aanwijzer naar een geschikte geheugenlocatioN wordt geretourneerd, dat element van de lijst wordt verwijderd.

Nadat een programma is uitgevoerd met behulp van het geheugen, kan het het toewijzen. Dit houdt in dat de aanwijzer aan het geheugen wordt doorgegevenBlokkeer terug in de gratis lijst, waar deze beschikbaar komt de volgende keer dat een toewijzing wordt geprobeerd. Het is mogelijk dat de geheugentoewijzing faalt omdat de lijst leeg is of omdat er geen beschikbare geheugenblokken zijn die groot genoeg zijn om het te vervullenhet verzoek van het programma.

De eenvoudigste vorm van geheugenbeheer wordt het eerste fit -systeem genoemd. Dit systeem houdt een enkele lijst bij van vrije geheugenlocaties. Wanneer een verzoek om geheugen wordt verzonden,De lijst is doorkruist en het eerste blok dat groot genoeg is, wordt geretourneerd. Als het blok meer dan twee keer de gevraagde grootte is, wordt het gehalveerd en wordt de ongebruikte helft terug aan de lijst toegevoegd. Deze methode verhandelt eenvoudige codering voor het risico van gefragmenteerd geheugenGebieden die misschien nooit naar de lijst worden teruggestuurd.

Een andere vorm van geheugenbeheer wordt het buddy -toewijzingssysteem genoemd. In tegenstelling tot het eerste fit -systeem houdt de buddy -toewijzing verschillende vrije lijsten bij, elk met een vasthoudenOpen blokken van slechts één bepaalde grootte. Dit betekent dat wanneer een toewijzingsverzoek wordt ontvangen, de lijst met blokken die net groot genoeg zijn om het verzoek in te vullen, wordt geraadpleegd en een open locatie wordt geretourneerd. Als neeGratis blokken die minder dan twee keer de gevraagde grootte zijn, zijn beschikbaar, een groter blok wordt in twee gesplitst om aan de vereisten te voldoen.

De term gratis lijst kan verwijzen naar een enkele gekoppelde lijst met geheugenadressen,of het kan verwijzen naar een veel complexer type gegevensstructuur. Verschillende soorten soort bomen, indien eenvoudig en evenwichtig gehouden, kunnen helpen de snelheid van het vinden van open geheugenblokken te verhogen ten koste van het complicerende broncode. Een gekoppelde lijst kan langzamer zijn dan een gespecialiseerde sorteerboom, maar maakt programmerening code die veel gemakkelijker te lezen, foutopsporing en wijzigen is.

Sommige programmeertalen en besturingssystemen maken gebruik van een speciaal mechanisme genaamd Garbage Collection. Dit is een proces dat kan helpen de verschillende vermeldingen te nemen op eenVrije lijst en consolideer de vrije ruimtes zodat ze aaneengesloten zijn. Dit heeft het effect van het voorkomen van fragmentatie en het toestaan van grotere geheugenblokken toegewezen.