Wat is geheugenbeheer?
Geheugenbeheer is het proces van het besturen en coördineren van computergeheugen, waarbij delen die bekend staan als blokken aan verschillende actieve programma's worden toegewezen om de algehele prestaties van het systeem te optimaliseren.
Het is de belangrijkste functie van een besturingssysteem dat het primaire geheugen beheert. Het helpt processen om heen en weer te gaan tussen het hoofdgeheugen en de uitvoeringsschijf. Het helpt het besturingssysteem om elke geheugenlocatie bij te houden, ongeacht of het aan een bepaald proces is toegewezen of dat het vrij blijft.
In deze tutorial over het besturingssysteem leert u:
- Wat is geheugenbeheer?
- Waarom geheugenbeheer gebruiken?
- Geheugenbeheertechnieken
- Wat is ruilen?
- Wat is geheugentoewijzing?
- Wat is paging?
- Wat is de fragmentatiemethode?
- Wat is segmentatie?
- Wat is dynamisch laden?
- Wat is dynamische koppeling?
- Verschil tussen statische en dynamische belasting
- Verschil tussen statische en dynamische koppeling
Waarom geheugenbeheer gebruiken?
Hier zijn redenen om geheugenbeheer te gebruiken:
- Hiermee kunt u controleren hoeveel geheugen moet worden toegewezen aan processen die beslissen welke processor op welk moment geheugen moet krijgen.
- Houdt bij wanneer voorraad wordt vrijgemaakt of niet wordt toegewezen. Volgens het zal de status bijwerken.
- Het wijst de ruimte toe aan toepassingsroutines.
- Het zorgt er ook voor dat deze applicaties elkaar niet storen.
- Helpt verschillende processen van elkaar te beschermen
- Het plaatst de programma's in het geheugen zodat het geheugen volledig wordt benut.
Geheugenbeheertechnieken
Hier volgen enkele van de meest cruciale technieken voor geheugenbeheer:
Enkele aaneengesloten toewijzing
Het is de gemakkelijkste techniek voor geheugenbeheer. Bij deze methode zijn alle typen computergeheugen, behalve een klein gedeelte dat is gereserveerd voor het besturingssysteem, beschikbaar voor één toepassing. Het MS-DOS-besturingssysteem wijst op deze manier geheugen toe. Een embedded systeem draait ook op een enkele applicatie.
Gepartitioneerde toewijzing
Het verdeelt het primaire geheugen in verschillende geheugenpartities, meestal aaneengesloten geheugengebieden. Elke partitie slaat alle informatie op voor een specifieke taak of job. Deze methode bestaat uit het toewijzen van een partitie aan een taak wanneer deze start en de toewijzing ongedaan maken wanneer deze eindigt.
Beheer van wisselgeheugen
Deze methode verdeelt het hoofdgeheugen van de computer in eenheden met een vaste grootte, ook wel paginaframes genoemd. Deze hardwaregeheugenbeheereenheid wijst pagina's in frames toe die op paginabasis zouden moeten worden toegewezen.
Gesegmenteerd geheugenbeheer
Gesegmenteerd geheugen is de enige methode voor geheugenbeheer die het programma van de gebruiker 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 geheugen, grootte en andere gegevens zoals toegangsbeveiligingsbits en status.
Wat is ruilen?
Swapping is een methode waarbij het proces tijdelijk moet worden omgewisseld van het hoofdgeheugen naar de back-store. Het zal later weer in het geheugen worden opgeslagen om verder te worden uitgevoerd.
Backing store is een harde schijf of een ander secundair opslagapparaat dat groot genoeg moet zijn om kopieën van alle geheugenafbeeldingen voor alle gebruikers op te nemen. Het is ook in staat om directe toegang tot deze geheugenbeelden te bieden.
Voordelen van ruilen
Hier zijn de belangrijkste voordelen / voordelen van ruilen:
- Het biedt een hogere mate van multiprogrammering.
- Maakt dynamische verplaatsing mogelijk. Als bijvoorbeeld adresbinding tijdens uitvoering wordt gebruikt, kunnen processen op verschillende locaties worden omgewisseld. Anders in het geval van bindingen voor compileren en laden, moeten processen naar dezelfde locatie worden verplaatst.
- Het helpt om het geheugen beter te gebruiken.
- Minimale verspilling van CPU-tijd na voltooiing, zodat het eenvoudig kan worden toegepast op een op prioriteit gebaseerde planningsmethode om de prestaties te verbeteren.
Wat is geheugentoewijzing?
Geheugentoewijzing is een proces waarbij computerprogramma's geheugen of ruimte krijgen toegewezen.
Hier is het hoofdgeheugen verdeeld in twee soorten partities
- Weinig geheugen - Het besturingssysteem bevindt zich in dit type geheugen.
- Hoog geheugen - Gebruikersprocessen worden vastgehouden in een hoog geheugen.
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 partitietoewijzingsschema's:
- First Fit : bij dit type fit wordt de partitie toegewezen, wat het eerste voldoende blok is vanaf het begin van het hoofdgeheugen.
- Best Fit: Het wijst het proces toe aan de partitie die de eerste kleinste partitie is onder de vrije partities.
- Slechtste pasvorm: het wijst het proces toe aan de partitie, die de grootste voldoende vrij beschikbare partitie in het hoofdgeheugen is.
- Volgende aanpassing: het is grotendeels vergelijkbaar met de eerste aanpassing, maar deze aanpassing zoekt naar de eerste voldoende partitie vanaf het laatste toewijzingspunt.
Wat is paging?
Paging is een opslagmechanisme waarmee het besturingssysteem processen van de secundaire opslag naar het hoofdgeheugen kan ophalen in de vorm van pagina's. Bij de Paging-methode wordt het hoofdgeheugen verdeeld in kleine blokken fysiek geheugen met een vaste grootte, die frames worden genoemd. De grootte van een frame moet hetzelfde worden gehouden als die van een pagina om maximaal gebruik te maken van het hoofdgeheugen en om externe fragmentatie te voorkomen. Paging wordt gebruikt voor snellere toegang tot gegevens, en het is een logisch concept.
Wat is fragmentatie?
Processen worden opgeslagen en uit het geheugen verwijderd, waardoor er vrije geheugenruimte ontstaat, die te klein is om door andere processen te worden gebruikt.
Soms worden processen die niet in staat zijn om geheugenblokken toe te wijzen omdat hun kleine omvang en geheugenblokken altijd ongebruikt blijven, fragmentatie genoemd. Dit type probleem doet zich voor tijdens een dynamisch geheugentoewijzingssysteem wanneer de vrije blokken vrij klein zijn, dus het kan aan geen enkel verzoek voldoen.
Twee soorten fragmentatiemethoden zijn:
- Externe fragmentatie
- Interne fragmentatie
- Externe fragmentatie kan worden verminderd door de geheugeninhoud te herschikken om al het vrije geheugen in één blok te plaatsen.
- De interne fragmentatie kan worden verminderd door de kleinste partitie toe te wijzen, die nog steeds goed genoeg is om het hele proces te dragen.
Wat is segmentatie?
Segmentatiemethode werkt bijna hetzelfde als pagineren. Het enige verschil tussen de twee is dat de segmenten een variabele lengte hebben, terwijl pagina's bij de paginamethode altijd een vaste grootte hebben.
Een programmasegment omvat de hoofdfunctie van het programma, datastructuren, hulpprogramma-functies, enz. Het besturingssysteem houdt een segmentoverzichtstabel bij voor alle processen. Het bevat 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 routine van een programma dat pas wordt geladen als het programma het aanroept. Alle routines moeten op schijf staan in een verplaatsbaar laadformaat. Het hoofdprogramma wordt in het geheugen geladen en uitgevoerd. Dynamisch laden zorgt ook voor een beter gebruik van de geheugenruimte.
Wat is dynamische koppeling?
Koppelen is een methode die het besturingssysteem helpt om verschillende modules met code en gegevens te verzamelen en samen te voegen tot één uitvoerbaar bestand. Het bestand kan in het geheugen worden geladen en uitgevoerd. OS kan bibliotheken op systeemniveau koppelen aan een programma dat de bibliotheken tijdens het laden combineert. Bij de dynamische koppelingsmethode worden bibliotheken tijdens de uitvoering aan elkaar gekoppeld, zodat de programmacode klein kan blijven.
Verschil tussen statische en dynamische belasting
Statische belasting | Dynamisch laden |
Statisch laden wordt gebruikt als u uw programma statisch wilt laden. Op het moment van compilatie wordt het volledige programma gekoppeld en gecompileerd zonder dat er een externe module of programma-afhankelijkheid nodig is. | In een dynamisch geladen programma worden referenties verstrekt en wordt het laden gedaan op het moment van uitvoering. |
Tijdens het laden wordt het volledige programma in het geheugen geladen en begint het met 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
Hier zijn de belangrijkste verschillen tussen statische en dynamische koppelingen:
Statische koppeling | Dynamische koppeling |
Statische koppeling wordt gebruikt om alle andere modules die een programma nodig heeft, te combineren tot één uitvoerbare code. Dit helpt het besturingssysteem om runtime-afhankelijkheid te voorkomen. | Wanneer dynamische koppeling wordt gebruikt, hoeft de feitelijke module of bibliotheek niet aan het programma te worden gekoppeld. Gebruik in plaats daarvan een verwijzing naar de dynamische module die werd verstrekt op het moment van compilatie en koppeling. |
Overzicht:
- Geheugenbeheer is het proces van het besturen en coördineren van het computergeheugen, waarbij delen die blokken worden genoemd aan verschillende actieve programma's worden toegewezen om de algehele prestaties van het systeem te optimaliseren.
- Hiermee kunt u controleren hoeveel geheugen moet worden toegewezen aan processen die beslissen welke processor op welk moment geheugen moet krijgen.
- Bij Single Contiguous Allocation zijn alle typen computergeheugen, behalve een klein gedeelte dat is gereserveerd voor het besturingssysteem, beschikbaar voor één toepassing
- Partitioned Allocation-methode verdeelt het primaire geheugen in verschillende geheugenpartities, meestal aaneengesloten geheugengebieden
- Paged Memory Management-methode verdeelt het hoofdgeheugen van de computer in eenheden van een vaste grootte, ook wel paginaframes genoemd
- Gesegmenteerd geheugen is de enige methode voor geheugenbeheer die het programma van de gebruiker niet voorziet van een lineaire en aaneengesloten adresruimte.
- Swapping is een methode waarbij het proces tijdelijk moet worden omgewisseld van het hoofdgeheugen naar de back-store. Het zal later weer in het geheugen worden opgeslagen om verder te worden uitgevoerd.
- Geheugentoewijzing is een proces waarbij computerprogramma's geheugen of ruimte krijgen toegewezen.
- Paging is een opslagmechanisme waarmee het besturingssysteem processen van de secundaire opslag naar het hoofdgeheugen kan ophalen in de vorm van pagina's.
- Fragmentatie verwijst naar de toestand van een schijf waarin bestanden in stukjes zijn verdeeld die over de schijf zijn verspreid.
- Segmentatiemethode werkt bijna hetzelfde als pagineren. Het enige verschil tussen de twee is dat de segmenten een variabele lengte hebben, terwijl pagina's bij de paginamethode altijd een vaste grootte hebben.
- Dynamisch laden is een routine van een programma dat pas wordt geladen als het programma het aanroept.
- Koppelen is een methode die het besturingssysteem helpt om verschillende modules met code en gegevens te verzamelen en samen te voegen tot één uitvoerbaar bestand.