Geheugenbeheer in het besturingssysteem: aaneengesloten geheugen, swapgeheugenpingFragmentatie
⚡ Slimme samenvatting
Geheugenbeheer is het proces van het besturingssysteem voor het beheren en coördineren van het computergeheugen, waarbij geheugenblokken worden toegewezen aan actieve programma's om de prestaties te optimaliseren. tracks maakt elke geheugenlocatie toegankelijk, verplaatst processen tussen het hoofdgeheugen en de schijf en beschermt processen tegen elkaar.

Wat is geheugenbeheer?
Geheugen management is het proces waarbij computergeheugen wordt gecontroleerd en gecoördineerd, waarbij delen die bekend staan als blokken worden toegewezen aan verschillende actieve programma's om de algehele prestaties van het systeem te optimaliseren.
Het is de belangrijkste functie van een besturingssysteem: het beheert het primaire geheugen. Het helpt processen heen en weer te bewegen tussen het hoofdgeheugen en de uitvoeringsschijf. Het helpt het besturingssysteem om de processen efficiënt te laten verlopen. track van elke geheugenlocatie, ongeacht of deze aan een proces is toegewezen of vrij blijft.
Waarom geheugenbeheer gebruiken?
Hieronder volgen de redenen voor het gebruik van geheugenbeheer:
- Hiermee kunt u controleren hoeveel geheugen moet worden toegewezen aan processen die beslissen welke processor op welk moment geheugen moet krijgen.
- Tracks wordt geactiveerd wanneer inventaris vrijkomt of niet langer is toegewezen, en werkt de status dienovereenkomstig bij.
- Het wijst de ruimte toe aan toepassingsroutines.
- Het zorgt er ook voor dat deze applicaties elkaar niet storen.
- Helpt verschillende processen tegen elkaar te beschermen.
- Het plaatst de programma's in het geheugen, zodat het geheugen volledig wordt benut.
Technieken voor geheugenbeheer
Hieronder volgen enkele van de belangrijkste technieken voor geheugenbeheer:
Eén aaneengesloten toewijzing
Het is de eenvoudigste geheugenbeheertechniek. Bij deze methode is al het geheugen van een computer, met uitzondering van een klein gedeelte dat is gereserveerd voor het besturingssysteem, beschikbaar voor één enkele applicatie. Het MS-DOS-besturingssysteem wijst bijvoorbeeld geheugen op deze manier toe. Een ingebed systeem draait ook op één enkele applicatie.
Gepartitioneerde toewijzing
Het verdeelt het primaire geheugen in verschillende geheugenpartities, die meestal aaneengesloten geheugengebieden zijn. Elke partitie slaat alle informatie op voor een specifieke taak of job. Deze methode houdt in dat een partitie aan een job wordt toegewezen wanneer deze start en weer wordt vrijgegeven wanneer deze eindigt.
Beheer van wisselgeheugen
Deze methode verdeelt het hoofdgeheugen van de computer in eenheden van vaste grootte, ook wel paginaframes genoemd. Deze hardwaregeheugenbeheereenheid wijst pagina's toe in frames die op paginabasis moeten worden toegewezen.
Gesegmenteerd geheugenbeheer
Gesegmenteerd geheugen is de enige geheugenbeheermethode die het gebruikersprogramma niet voorziet van een lineaire en aaneengesloten adresruimte.
Segmenten hebben hardwareondersteuning nodig in de vorm van een segmenttabel. Het bevat het fysieke adres van de sectie in het geheugen, de grootte en andere gegevens zoals toegangsbeveiligingsbits en status.
Wat is ruilen?ping?
Ruilenping Dit is een methode waarbij een proces tijdelijk van het hoofdgeheugen naar de secundaire opslag wordt verplaatst. Het wordt later weer teruggehaald naar het hoofdgeheugen om verder te worden uitgevoerd.
De back-upopslag is een harde schijf of een ander secundair opslagapparaat dat groot genoeg moet zijn om kopieën van alle geheugenimages voor alle gebruikers te kunnen opslaan. Het moet ook directe toegang tot deze geheugenimages mogelijk maken.
Voordelen van swappenping
Hieronder volgen de belangrijkste voordelen van swappen.ping:
- Het biedt een hogere mate van multiprogrammering.
- Maakt dynamische verplaatsing mogelijk. Als er bijvoorbeeld adresbinding tijdens de uitvoering wordt gebruikt, kunnen processen naar verschillende locaties worden verplaatst. In het geval van binding tijdens het compileren en laden, moeten processen daarentegen naar dezelfde locatie worden verplaatst.
- Het helpt om het geheugen beter te benutten.
- Minimale verspilling van CPU-tijd bij voltooiing, waardoor het gemakkelijk kan worden toegepast op een op prioriteit gebaseerde planningsmethode om de prestaties te verbeteren.
Wat is geheugentoewijzing?
Geheugentoewijzing is een proces waarbij aan computerprogramma's geheugen of ruimte wordt toegewezen.
Het hoofdgeheugen is hier verdeeld in twee soorten partities:
- Slecht geheugen - The Operating systeem bevindt zich in dit type geheugen.
- Hoog geheugen – Gebruikersprocessen worden in het hoge geheugen bewaard.
Partitietoewijzing
Het geheugen is verdeeld in verschillende blokken of partities. Elk proces wordt toegewezen op basis van de vereiste. Partitietoewijzing is een ideale methode om interne fragmentatie te voorkomen.
Hieronder staan de verschillende toewijzingsschema's voor partities:
- Eerste pasvorm: Bij dit type indeling wordt de partitie toegewezen die het eerste voldoende grote blok vanaf het begin van het hoofdgeheugen is.
- Beste pasvorm: Het wijst het proces toe aan de partitie die de kleinste voldoende capaciteit heeft onder de vrije partities.
- Slechtste pasvorm: Het wijst het proces toe aan de partitie die de grootste voldoende beschikbare vrije partitie in het hoofdgeheugen is.
- Volgende pasvorm: Het is grotendeels vergelijkbaar met de First Fit, maar deze Fit zoekt naar de eerste voldoende partitie vanaf het laatste toewijzingspunt.
Wat is paging?
Paging is een opslagmechanisme waarmee het besturingssysteem processen vanuit het secundaire geheugen naar het hoofdgeheugen kan ophalen in de vorm van pagina's. Bij paging wordt het hoofdgeheugen verdeeld in kleine, vaste blokken fysiek geheugen, frames genaamd. De grootte van een frame moet gelijk zijn aan die van een pagina om het hoofdgeheugen optimaal te benutten en externe fragmentatie te voorkomen. Paging wordt gebruikt voor snellere toegang tot gegevens, en het is een logisch concept.
Wat is fragmentatie?
Processen worden in het geheugen opgeslagen en er weer uit verwijderd, waardoor er vrije geheugenruimte ontstaat die te klein is om door andere processen te worden gebruikt.
Na verloop van tijd kunnen deze processen niet meer aan geheugenblokken worden toegewezen vanwege hun geringe omvang, waardoor de geheugenblokken ongebruikt blijven. Dit wordt fragmentatie genoemd. Dit probleem doet zich voor in een dynamisch geheugenallocatiesysteem wanneer de vrije blokken erg klein zijn, waardoor ze niet aan alle verzoeken kunnen voldoen.
Er zijn twee soorten fragmentatiemethoden:
- Externe fragmentatie
- Interne fragmentatie
- Externe fragmentatie kan worden verminderd door de geheugeninhoud te herschikken, zodat al het vrije geheugen samen in één blok wordt geplaatst.
- Interne fragmentatie kan worden verminderd door de kleinste partitie toe te wijzen die nog steeds groot genoeg is om het hele proces te verwerken.
Wat is segmentatie?
De segmentatiemethode werkt vrijwel hetzelfde als paginering. Het enige verschil is dat segmenten een variabele lengte hebben, terwijl pagina's bij de pagineringsmethode altijd een vaste grootte hebben.
Een programmasegment omvat de hoofdfunctie van het programma, datastructuren, hulpprogrammafuncties, enz. Het besturingssysteem onderhoudt een segmentkaarttabel voor alle processen. Het omvat ook een lijst met vrije geheugenblokken, samen met de grootte, segmentnummers en de geheugenlocaties in het hoofdgeheugen of virtueel geheugen.
Wat is dynamisch laden?
Dynamisch laden is een procedure van een programma die pas wordt geladen wanneer het programma deze aanroept. Alle procedures moeten op een schijf worden opgeslagen in een verplaatsbaar laadformaat. Het hoofdprogramma wordt in het geheugen geladen en uitgevoerd. Dynamisch laden zorgt bovendien voor een efficiënter gebruik van de geheugenruimte.
Wat is dynamisch koppelen?
Linken is een methode waarmee het besturingssysteem verschillende code- en datamodules kan verzamelen en samenvoegen tot één uitvoerbaar bestand. Dit bestand kan vervolgens in het geheugen worden geladen en uitgevoerd. Het besturingssysteem kan systeembibliotheken koppelen tot een programma dat de bibliotheken combineert tijdens het laden. Bij dynamisch linken worden bibliotheken pas tijdens de uitvoering gekoppeld, waardoor de programmacode klein blijft.
Verschil tussen statisch en dynamisch laden
| Statisch laden | Dynamisch laden |
|---|---|
| Statisch laden wordt gebruikt wanneer u uw programma statisch wilt laden. Tijdens de compilatie wordt het volledige programma dan gekoppeld en gecompileerd zonder dat er externe modules of programma-afhankelijkheden nodig zijn. | In een dynamisch geladen programma worden referenties verstrekt en vindt het laden plaats op het moment van uitvoering. |
| Tijdens het laden wordt het volledige programma in het geheugen geladen en begint de uitvoering ervan. | Routines van de bibliotheek worden alleen in het geheugen geladen als ze in het programma nodig zijn. |
Verschil tussen statische en dynamische koppeling
Hieronder volgen de belangrijkste verschillen tussen statische en dynamische koppelingen:
| Statische koppeling | Dynamische koppeling |
|---|---|
| Statische koppeling wordt gebruikt om alle modules die een programma nodig heeft, te combineren tot één uitvoerbaar codebestand. Dit helpt het besturingssysteem om afhankelijkheden tijdens de uitvoering te voorkomen. | Bij dynamische koppeling hoeft de module of bibliotheek niet daadwerkelijk aan het programma gekoppeld te worden. In plaats daarvan wordt gebruikgemaakt van een verwijzing naar de dynamische module die tijdens het compileren en koppelen wordt aangeleverd. |

