Aanbevolen, 2020

Editor'S Choice

Verschil tussen semafonie en segmentatie in OS

Het geheugenbeheer in het besturingssysteem is een essentiële functionaliteit, die de toewijzing van geheugen aan de processen voor uitvoering mogelijk maakt en het geheugen dealloceert wanneer het proces niet langer nodig is. In dit artikel bespreken we twee paging en segmentatie van geheugenbeheersystemen. Het fundamentele verschil tussen paging en segmentatie is dat "pagina" een blok van een vaste grootte is, terwijl een "segment" een blok met variabele afmetingen is.

We zullen enkele meer verschillen bespreken tussen paging en segmentatie met behulp van de onderstaande vergelijkingsgrafiek.

Vergelijkingstabel

Basis voor vergelijkingpagingSegmentatie
basis-Een pagina heeft een vaste blokgrootte.Een segment heeft een variabele grootte.
fragmentatiePaging kan leiden tot interne fragmentatie.Segmentatie kan leiden tot externe fragmentatie.
AdresHet door de gebruiker opgegeven adres wordt door de CPU opgedeeld in een paginanummer en een offset.De gebruiker geeft elk adres op twee grootheden een segmentnummer en de offset (segmentlimiet).
GrootteDe hardware bepaalt het paginaformaat.De segmentgrootte wordt door de gebruiker opgegeven.
TafelBij paging gaat het om een ​​paginatabel die het basisadres van elke pagina bevat.Segmentatie betreft de segments tabel die segmentnummer en offset (segmentlengte) bevat.

Definitie van paging

Paging is een geheugenbeheerschema . Met paging kan een proces op een niet-aansluitende manier in een geheugen worden opgeslagen. Het opslaan van het proces op een niet-aansluitende manier lost het probleem van externe fragmentatie op .

Voor het implementeren van paging zijn de fysieke en logische geheugenruimten verdeeld in dezelfde blokken van een vaste grootte. Deze blokken van fysiek geheugen met een vaste grootte worden frames genoemd en de blokken met een vast formaat van logisch geheugen worden pagina's genoemd .

Wanneer een proces moet worden uitgevoerd, worden de procespagina's uit de logische geheugenruimte in de frames van het fysieke geheugenadresvak geladen. Het door de CPU gegenereerde adres voor toegang tot het frame is nu verdeeld in twee delen, dwz paginanummer en pagina-offset .

De paginatabel gebruikt paginanummer als een index; elk proces heeft zijn eigen paginatabel die het logische adres toewijst aan het fysieke adres. De paginatabel bevat het basisadres van de pagina die is opgeslagen in het frame van de fysieke geheugenruimte. Het basisadres gedefinieerd door de paginatabel wordt gecombineerd met de pagina-offset om het framenummer in het fysieke geheugen te definiëren waar de pagina wordt opgeslagen.

Definitie van segmentatie

Net als bij paging is segmentatie ook een geheugenbeheerschema . Het ondersteunt de gebruikersweergave van het geheugen. Het proces is onderverdeeld in de segmenten met variabele grootte en geladen in de adresruimte van het logische geheugen.

De logische adresruimte is de verzameling van segmenten met variabele grootte. Elk segment heeft zijn naam en lengte . Voor de uitvoering worden de segmenten uit de logische geheugenruimte naar de fysieke geheugenruimte geladen.

Het door de gebruiker opgegeven adres bevat twee hoeveelheden, de segmentnaam en de offset . De segmenten worden genummerd en verwezen door het segmentnummer in plaats van de segmentnaam. Dit segmentnummer wordt gebruikt als een index in de segmenttabel en de offsetwaarde bepaalt de lengte of limiet van het segment. Het segmentnummer en de offset vormen samen het adres van het segment in de fysieke geheugenruimte.

Belangrijkste verschillen tussen semafonie en segmentering

  1. Het basisverschil tussen paging en segmentatie is dat een pagina altijd een vaste blokgrootte heeft, terwijl een segment een variabele grootte heeft .
  2. Paging kan leiden tot interne fragmentatie omdat de pagina een vaste blokgrootte heeft, maar het kan gebeuren dat het proces niet de volledige blokgrootte krijgt die het interne fragment in het geheugen zal genereren. De segmentering kan leiden tot externe fragmentatie als het geheugen wordt gevuld met blokken van variabele grootte.
  3. Bij paging biedt de gebruiker slechts één geheel getal als het adres dat door de hardware wordt verdeeld in een paginanummer en een offset . Aan de andere kant specificeert de gebruiker bij segmentering het adres in twee hoeveelheden, dat wil zeggen segmentnummer en offset .
  4. De grootte van de pagina wordt bepaald of gespecificeerd door de hardware . Aan de andere kant wordt de grootte van het segment door de gebruiker opgegeven.
  5. Bij paging wijst de paginatabel het logische adres toe aan het fysieke adres en bevat deze het basisadres van elke pagina die is opgeslagen in de frames van de fysieke geheugenruimte. Bij segmentering wijst de segmenttabel echter het logische adres toe aan het fysieke adres en bevat het segmentnummer en offset (segmentlimiet).

Conclusie:

Paging en segmentatie zijn beide de geheugenbeheerprogramma's . Met paging kan het geheugen worden verdeeld in blokken van een vaste grootte, terwijl de segmentering de geheugenruimte verdeelt in segmenten van de variabele blokgrootte . Waar de paging leidt tot interne fragmentatie leidt de segmentatie tot externe fragmentatie .

Top