Wat is een geheugenbeheereenheid? (met foto's)
De computerhardware die verantwoordelijk is voor het beheer van het geheugensysteem van de computer, wordt de geheugenbeheereenheid (MMU) genoemd. Deze component dient als buffer tussen de CPU en het systeemgeheugen. De functies die worden uitgevoerd door de geheugenbeheereenheid kunnen doorgaans worden onderverdeeld in drie gebieden: geheugenbeheer voor hardware, geheugenbeheer voor besturingssysteem en geheugenbeheer voor toepassingen. Hoewel de geheugenbeheereenheid een afzonderlijke chipcomponent kan zijn, wordt deze meestal geïntegreerd in de centrale verwerkingseenheid (CPU).
Over het algemeen omvat de hardware geassocieerd met geheugenbeheer willekeurig toegankelijk geheugen (RAM) en geheugencaches. RAM is het fysieke opslagcompartiment dat zich op de harde schijf bevindt. Het is het hoofdopslaggebied van de computer waar gegevens worden gelezen en geschreven. Geheugencaches worden gebruikt om kopieën van bepaalde gegevens uit het hoofdgeheugen te bewaren. De CPU heeft toegang tot deze informatie in de geheugencache, wat de verwerkingstijd helpt versnellen.
Wanneer het fysieke geheugen of RAM onvoldoende geheugenruimte heeft, gebruikt de computer automatisch virtueel geheugen van de harde schijf om het gevraagde programma uit te voeren. De geheugenbeheereenheid wijst geheugen van het besturingssysteem toe aan verschillende toepassingen. Het virtuele adresgebied, dat zich binnen de centrale verwerkingseenheid bevindt, bestaat uit een reeks adressen die zijn verdeeld in pagina's. Pagina's zijn secundaire opslagblokken die even groot zijn. Dankzij het geautomatiseerde oproepproces kan het besturingssysteem op de harde schijf verspreide opslagruimte gebruiken.
In plaats van dat de gebruiker een foutmelding krijgt dat er onvoldoende geheugen is, geeft de MMU het systeem automatisch de opdracht om voldoende virtueel geheugen te bouwen om de toepassing uit te voeren. Aaneengesloten virtuele geheugenruimte wordt gemaakt uit een verzameling blokken virtueel geheugen van gelijke grootte voor het uitvoeren van de toepassing. Deze functie is een belangrijke sleutel om dit proces effectief en efficiënt te laten werken, omdat het systeem niet verplicht is om een stuk virtueel geheugen te maken om de programmavereisten af te handelen. Het creëren van geheugengroottes van verschillende groottes voor programma's van verschillende groottes veroorzaakt een probleem dat fragmentatie wordt genoemd. Dit kan ertoe leiden dat er niet genoeg vrije ruimte is voor grotere programma's als de totale beschikbare ruimte daadwerkelijk voldoende is.
Beheer van applicatiegeheugen omvat het toewijzen van het geheugen dat nodig is om een programma uit de beschikbare geheugenbronnen te draaien. In grotere besturingssystemen kunnen veel exemplaren van dezelfde toepassing worden uitgevoerd. De geheugenbeheereenheid wijst aan een toepassing vaak het geheugenadres toe dat het beste bij zijn behoefte past. Het is eenvoudiger om deze programma's dezelfde adressen toe te wijzen. De geheugenbeheereenheid kan ook geheugenbronnen naar programma's distribueren als dat nodig is. Wanneer de bewerking is voltooid, wordt het geheugen gerecycled voor gebruik elders.
Een van de belangrijkste uitdagingen voor geheugenbeheereenheden is om te detecteren wanneer gegevens niet langer nodig zijn en kunnen worden weggegooid. Dit maakt geheugen vrij voor gebruik in andere processen. Automatisch en handmatig geheugenbeheer is vanwege dit probleem een apart vakgebied geworden. Inefficiënt geheugenbeheer vormt een groot probleem als het gaat om optimale prestaties van computersystemen.