logo

Geheugenbeheer in besturingssysteem (OS)

In dit artikel zullen we geheugenbeheer in detail begrijpen.

Wat bedoel je met geheugenbeheer?

Geheugen is het belangrijkste onderdeel van de computer dat wordt gebruikt om de gegevens op te slaan. Het beheer ervan is van cruciaal belang voor het computersysteem, omdat de hoeveelheid hoofdgeheugen die beschikbaar is in een computersysteem zeer beperkt is. Er zijn op elk moment veel processen die erom strijden. Om de prestaties te verbeteren, worden bovendien meerdere processen tegelijkertijd uitgevoerd. Hiervoor moeten we verschillende processen in het hoofdgeheugen bewaren, dus het is nog belangrijker om ze effectief te beheren.

Geheugen management

Rol van geheugenbeheer

Hieronder volgen de belangrijke rollen van geheugenbeheer in een computersysteem:

  • Geheugenbeheer wordt gebruikt om de status van geheugenlocaties bij te houden, of deze nu vrij of toegewezen zijn. Het richt zich op het primaire geheugen door abstracties aan te bieden, zodat de software waarneemt dat er een groot geheugen aan is toegewezen.
  • Met Geheugenbeheer kunnen computers met een kleine hoeveelheid hoofdgeheugen programma's uitvoeren die groter zijn dan de grootte of hoeveelheid beschikbaar geheugen. Het doet dit door informatie heen en weer te verplaatsen tussen het primaire geheugen en het secundaire geheugen door gebruik te maken van het concept van swappen.
  • De geheugenbeheerder is verantwoordelijk voor het beschermen van het geheugen dat aan elk proces is toegewezen, tegen beschadiging door een ander proces. Als dit niet wordt gewaarborgd, kan het systeem onvoorspelbaar gedrag vertonen.
  • Geheugenmanagers moeten het delen van geheugenruimte tussen processen mogelijk maken. Twee programma's kunnen zich dus op dezelfde geheugenlocatie bevinden, hoewel op verschillende tijdstippen.

Technieken voor geheugenbeheer:

De geheugenbeheertechnieken kunnen worden ingedeeld in de volgende hoofdcategorieën:

  • Aaneengesloten geheugenbeheerschema's
  • Niet-aaneengesloten geheugenbeheerschema's
Geheugen management

Aaneengesloten geheugenbeheerschema's:

In een aaneengesloten geheugenbeheerschema bezet elk programma een enkel aaneengesloten blok van opslaglocaties, dat wil zeggen een reeks geheugenlocaties met opeenvolgende adressen.

Enkelvoudige aaneengesloten geheugenbeheerschema's:

Het Single aaneengesloten geheugenbeheerschema is het eenvoudigste geheugenbeheerschema dat in de eerste generatie computersystemen werd gebruikt. In dit schema is het hoofdgeheugen verdeeld in twee aaneengesloten gebieden of partities. De besturingssystemen bevinden zich permanent op één partitie, meestal in het lagere geheugen, en het gebruikersproces wordt in de andere partitie geladen.

Voordelen van schema's voor enkelvoudig aaneengesloten geheugenbeheer:

  • Eenvoudig te implementeren.
  • Eenvoudig te beheren en te ontwerpen.
  • In een enkel aaneengesloten geheugenbeheerschema krijgt een proces, zodra het is geladen, de volledige processortijd en zal geen enkele andere processor het onderbreken.

Nadelen van schema's voor enkelvoudig aaneengesloten geheugenbeheer:

  • Verspilling van geheugenruimte als gevolg van ongebruikt geheugen, omdat het onwaarschijnlijk is dat het proces alle beschikbare geheugenruimte zal gebruiken.
  • De CPU blijft inactief en wacht tot de schijf de binaire afbeelding in het hoofdgeheugen heeft geladen.
  • Het kan niet worden uitgevoerd als het programma te groot is om in de gehele beschikbare hoofdgeheugenruimte te passen.
  • Het ondersteunt geen multiprogrammering, dat wil zeggen dat het niet meerdere programma's tegelijkertijd kan verwerken.

Meerdere partities:

Het enkele aaneengesloten geheugenbeheerschema is inefficiënt omdat het computers beperkt om slechts één programma tegelijk uit te voeren, wat resulteert in verspilling van geheugenruimte en CPU-tijd. Het probleem van inefficiënt CPU-gebruik kan worden ondervangen door gebruik te maken van multiprogrammering, waarbij meer dan één programma tegelijkertijd kan worden uitgevoerd. Om tussen twee processen te kunnen schakelen, moeten de besturingssystemen beide processen in het hoofdgeheugen laden. Het besturingssysteem moet het beschikbare hoofdgeheugen in meerdere delen verdelen om meerdere processen in het hoofdgeheugen te laden. Er kunnen dus meerdere processen tegelijkertijd in het hoofdgeheugen aanwezig zijn.

De meervoudige partitieschema's kunnen van twee typen zijn:

  • Vaste partities
  • Dynamische partitionering

Vaste partities

Het hoofdgeheugen is verdeeld in verschillende partities van vaste grootte in een geheugenbeheerschema met vaste partities of statische partities. Deze partities kunnen dezelfde grootte hebben of verschillende afmetingen. Elke partitie kan één enkel proces bevatten. Het aantal partities bepaalt de mate van multiprogrammering, dat wil zeggen het maximale aantal processen in het geheugen. Deze partities worden gemaakt op het moment dat het systeem wordt gegenereerd en blijven daarna vast.

Voordelen van geheugenbeheerschema's met vaste partities:

  • Eenvoudig te implementeren.
  • Eenvoudig te beheren en te ontwerpen.

Nadelen van geheugenbeheerschema's met vaste partities:

  • Dit schema lijdt aan interne fragmentatie.
  • Het aantal partities wordt opgegeven op het moment dat het systeem wordt gegenereerd.

Dynamische partitionering

De dynamische partitie is ontworpen om de problemen van een vast partitieschema te overwinnen. In een dynamisch partitieschema neemt elk proces slechts zoveel geheugen in beslag als nodig is wanneer het wordt geladen voor verwerking. Aan aangevraagde processen wordt geheugen toegewezen totdat het volledige fysieke geheugen is uitgeput of de resterende ruimte onvoldoende is om het aanvragende proces vast te houden. In dit schema hebben de gebruikte partities een variabele grootte en is het aantal partities niet gedefinieerd op het moment dat het systeem wordt gegenereerd.

Voordelen van geheugenbeheerschema's met dynamische partities:

  • Eenvoudig te implementeren.
  • Eenvoudig te beheren en te ontwerpen.

Nadelen van geheugenbeheerschema's met dynamische partities:

  • Dit schema heeft ook te lijden onder interne fragmentatie.
  • Het aantal partities wordt gespecificeerd op het moment van systeemsegmentatie.

Niet-aaneengesloten geheugenbeheerschema's:

In een niet-aaneengesloten geheugenbeheerschema wordt het programma verdeeld in verschillende blokken en geladen in verschillende delen van het geheugen die niet noodzakelijkerwijs aan elkaar grenzen. Dit schema kan worden geclassificeerd afhankelijk van de grootte van de blokken en of de blokken zich in het hoofdgeheugen bevinden of niet.

Wat is paging?

Paging is een techniek die de vereisten van aaneengesloten toewijzing van hoofdgeheugen elimineert. Hierin wordt het hoofdgeheugen verdeeld in blokken fysiek geheugen van vaste grootte, frames genoemd. De grootte van een frame moet hetzelfde blijven als die van een pagina om het hoofdgeheugen te maximaliseren en externe fragmentatie te voorkomen.

Voordelen van paging:

  • Pagina's verminderen externe fragmentatie.
  • Eenvoudig te implementeren.
  • Geheugen efficiënt.
  • Door de gelijke grootte van de frames wordt het wisselen heel eenvoudig.
  • Het wordt gebruikt voor snellere toegang tot gegevens.

Wat is segmentatie?

Segmentatie is een techniek die de vereisten van aaneengesloten toewijzing van hoofdgeheugen elimineert. Hierin wordt het hoofdgeheugen verdeeld in blokken fysiek geheugen van variabele grootte, segmenten genoemd. Het is gebaseerd op de manier waarop de programmeur zijn programma's structureert. Met gesegmenteerde geheugentoewijzing wordt elke taak verdeeld in verschillende segmenten van verschillende grootte, één voor elke module. Functies, subroutines, stapel, array, etc. zijn voorbeelden van dergelijke modules.