Forskellen mellem personsøgning og segmentering

Hukommelsesadministration er en af ​​de grundlæggende funktioner i operativsystemet. Moderne operativsystemer tillader, at hver proces får mere virtuel hukommelse end den samlede størrelse af den faktiske (fysiske) hukommelse på et givet computersystem. Hovedmålet med hukommelsesstyring er, at ved at kombinere stor, men langsom hukommelse med lille, men højhastighedshukommelse, for at opnå effekten af ​​større højhastighedshukommelse.

Hvad er paging?

Adskillelse mellem fast og variabel partitionering er ineffektiv med hensyn til hukommelsesudnyttelse, da fast partitionering resulterer i intern, mens dynamisk er ekstern fragmentering. En mulig løsning på problemet med fragmentering er at tillade, at processen ikke skrives til en kontinuerlig hukommelsesblok. Programmet kan spredes vilkårligt i hukommelsen. I dette tilfælde er arbejdshukommelsen opdelt i mindre blokke med fast størrelse kaldet rammer. Programmets logiske adresserum er også opdelt i blokke i samme størrelse, kaldet sider. Når et program indtastes i hukommelsen, skrives siderne i frie hukommelsesrammer. For let at overføre programmer fra en disk til en arbejdshukommelse er disken også opdelt i rammer i samme størrelse som hukommelsesrammerne. Således skrives en ramme fra disken til en ramme i arbejdshukommelsen. Personsidesystemet fungerer på følgende måde: Når programmet accepteres til udførelse, beregnes dets størrelse, hvilket udtrykkes med det krævede antal sider. Hvis et tilstrækkeligt antal rammer er gratis, registreres processen på hukommelsessiden pr. Side. Samtidig indtastes antallet af rammer, som hver side skrives i, i rammetabellen.

Hvad er segmentering?

Brugerprogrammet og tilhørende data kan opdeles i et antal segmenter. Segmenter af alle programmer behøver ikke at have samme størrelse, selvom der er en maksimal segmentlængde. Som med personsøgning består den logiske adresse, der bruger segmenteringen, af to dele, i dette tilfælde antallet af segmenter og forskydninger inden for det segment. På grund af brugen af ​​segmenter i forskellige størrelser ligner segmentering dynamisk partitionering. I mangel af et overlay-skema eller brug af virtuel hukommelse kræves det, at alle programsegmenter indlæses i hukommelsen til udførelse. Forskellen sammenlignet med dynamisk partitionering er, at segmentering kan tage mere end en partition, og denne partition behøver ikke at være tilstødende. Segmentering løser problemet med intern fragmentering, men såvel som dynamisk partitionering forbliver problemet med ekstern fragmentering. Fordi processen er opdelt i et antal mindre dele, er den ydre fragmentering imidlertid typisk mindre. I modsætning til personsøgning, der er usynlig for programmereren, er segmentering normalt synlig og egnet til at organisere programmer og data. Med henblik på modulær programmering kan programmet eller dataene yderligere opdeles i flere mindre segmenter. Ulempen med denne teknik er, at programmereren skal kende begrænsningerne for den maksimale segmentstørrelse. Den næste bekvemmelighed ved at bruge segmenter i forskellige størrelser er, at der ikke er nogen potentiel forbindelse mellem logiske og fysiske adresser. I lighed med personsøgning bruger den enkle segmenteringsteknik segmenttabel til hver proces og en liste over tilgængelige blokke i hovedhukommelsen.

Forskellen mellem personsøgning og segmentering

1. Begrebet personsøger og segmentering

Personsøgning leverer et virtuelt og et fysisk adresserum og et sekundært hukommelsesområde på blokke (sider) af samme længde. Dette tillader, at det kontinuerlige virtuelle adresserum tildeles til processen med spredning (ikke nødvendigvis kontinuerligt distribueret) i den virkelige adresserum og sekundær hukommelse. Selv siden refererer som et udtryk til hukommelse snarere end til logiske objekter, der er synlige på programniveau. Segmentering leverer et virtuelt adresserum på blokke (segmenter), der direkte svarer til objekter på programniveau. På grund af dette har segmentet ingen fast længde, så selv segmentstørrelsen kan ændres under programudførelse. Beskyttelse og opdeling er derfor mulig på objektniveau, og der er synlige processer, hvor segmentering udføres.

2. Karakteristika ved personsøger og segmentering

Programudvikleren er ikke opmærksom på søgen. Han skriver programmer som om hukommelsen er lineær, og operativsystemet og processoren er bekymrede over dens partitionering og konvertering til virtuelle adresser. Programmerer på segmenteringssystemer viser imidlertid to dele af adressen, segmentet og siden i deres programmer. Alle sider har samme størrelse, mens segmenterne er forskellige. Segmentering har flere lineære adresserum og søger kun et. Segmenter tillader logisk partitionering og beskyttelse af applikationskomponenter, og sider gør det ikke.

3. Fordele ved personsøgning og segmentering

Personsøgning, som er gennemsigtig for programmereren, eliminerer ekstern fragmentering og sikrer således effektiv brug af hovedhukommelsen. De stykker, der bevæger sig ind og ud af hovedhukommelsen, er faste og af samme størrelse, så det er muligt at udvikle sofistikerede hukommelsesstyringsalgoritmer, der udnytter programmets opførsel. Segmentering er synlig for udvikleren og har evnen til at styre væksten af ​​datastruktur, modularitet og support til udveksling og beskyttelse.

Personsøgning vs. segmentering: Sammenligningstabel

Paging

Segmentering

fast sidestørrelse segmenterne er ikke faste i størrelse
usynlig for programmerer synlig for programmerer
et lineært adresserum flere lineære adresserum
tillader ikke logisk partitionering og beskyttelse af applikationskomponenter tillader

Resumé af personsøgning og segmentering

  • Personsøgning er baseret på fordelingen af ​​hele adresselokalet på blokke med fast længde, der betjenes som hukommelseskvantificer. Det er endvidere nødvendigt at tilvejebringe et middel til at markere tilgængelig hukommelse, der kan udføres ved tilstedeværelsen af ​​"overskrift" på hver side, der angiver status for siden (global linkliste, hvor hver knude peger på den næste gratis side) eller ved placering af den gratis sideadresse i den globale matrix, som normalt er den værste løsning.
  • Segmentering betyder opdeling af adresseområdet i segmenter, der klart har markeret adgangsrettigheder til MMU-processoren. Inden for segmentet tildeler processerne nøjagtigt så meget hukommelse, som de har brug for, men problemet med hukommelsesstyring er, hvordan man tilvejebringer en sådan allokering, hvor den kan bevare stor nok kontinuerlig blokhukommelse, der muligvis har brug for nogen tid.