Forskjellen mellom personsøking og segmentering

Minneadministrasjon er en av de grunnleggende funksjonene til operativsystemet. Moderne operativsystemer tillater hver prosess å få mer virtuelt minne enn den totale størrelsen på det faktiske (fysiske) minnet på et gitt datasystem. Hovedmålet med minnehåndtering er at ved å kombinere stort, men sakte minne med lite, men høyhastighetsminne, for å oppnå effekten av større høyhastighetsminne.

Hva er personsøking?

Å skille mellom fast og variabel partisjonering er ineffektiv i form av minneutnyttelse, siden fast partisjonering resulterer i interne, mens dynamisk i ekstern fragmentering. En mulig løsning på problemet med fragmentering er å la prosessen ikke skrives til en kontinuerlig minneblokk. Programmet kan spredes vilkårlig i minnet. I dette tilfellet er arbeidsminne delt inn i mindre blokker med faste størrelser som kalles rammer. Programmets logiske adresseplass er også delt inn i blokker av samme størrelse, kalt sider. Når et program er lagt inn i minnet, skrives sidene i gratis minnerammer. For enkel å overføre programmer fra en disk til et arbeidsminne, er disken også delt inn i rammer av samme størrelse som minnestammer. Dermed er en ramme fra disken skrevet inn i en ramme av arbeidsminne. Personsøkingssystemet opererer på følgende måte: Når programmet er akseptert for utførelse, beregnes størrelsen, som uttrykkes med ønsket antall sider. Hvis et tilstrekkelig antall bilder er gratis, registreres prosessen på minnesiden per side. Samtidig er antall rammer der hver side er skrevet, angitt i rammebordet.

Hva er segmentering?

Brukerprogrammet og tilhørende data kan deles inn i et antall segmenter. Segmenter av alle programmer må ikke være av samme størrelse, selv om det er maksimal segmentlengde. Som med personsøking, består den logiske adressen som bruker segmenteringen av to deler, i dette tilfellet antall segmenter og dislokasjoner i det segmentet. På grunn av bruken av segmenter av forskjellige størrelser, er segmentering lik dynamisk partisjonering. I mangel av en overleggsordning eller bruk av virtuelt minne, er det påkrevd at alle programsegmenter lastes inn i minnet for utførelse. Forskjellen i forhold til dynamisk partisjonering er at segmenteringen kan ta mer enn en partisjon, og den partisjonen behøver ikke være tilstøtende. Segmentering løser problemet med intern fragmentering, men i tillegg til dynamisk partisjonering forblir problemet med ekstern fragmentering. Men fordi prosessen er delt inn i en rekke mindre deler, er den eksterne fragmenteringen vanligvis mindre. I motsetning til personsøking som er usynlig for programmøren, er segmentering vanligvis synlig og egnet for å organisere programmer og data. For formular programmering kan programmet eller dataene videre deles inn i flere mindre segmenter. Ulempen med denne teknikken er at programmøren må kjenne begrensningene for maksimal segmentstørrelse. Den neste fordelen med å bruke segmenter av forskjellige størrelser er at det ikke er noen potensiell forbindelse mellom logiske og fysiske adresser. I likhet med personsøking bruker den enkle segmenteringsteknikken segmenttabell for hver prosess og en liste over tilgjengelige blokker i hovedminnet.

Forskjellen mellom personsøking og segmentering

1. Konsept for personsøking og segmentering

Personsøking gir en virtuell og en fysisk adresserom og en sekundær minneplass på blokker (sider) med like lengder. Dette tillater kontinuerlig virtuell adresserom å bli tildelt dispersjonsprosessen (ikke nødvendigvis kontinuerlig distribuert) i den virkelige adresserommet og sekundærminnet. Selv siden, som et begrep, refererer til minne i stedet for logiske objekter som er synlige på programnivå. Segmentering leverer en virtuell adresserom på blokker (segmenter) som direkte samsvarer med objekter på programnivå. På grunn av dette har segmentet ingen fast lengde, så selv segmentstørrelsen kan endres under programgjennomføring. Beskyttelse og deling er derfor mulig på objektnivå, og det er synlige prosesser der segmentering utføres.

2. Kjennetegn ved personsøking og segmentering

Programutvikleren er uvitende om personsøkingen. Han skriver programmer som om minnet er lineært, og operativsystemet og prosessoren er opptatt av partisjonering og konvertering til virtuelle adresser. Programmerer på segmenteringssystemer lister imidlertid to deler av adressen, segmentet og siden i sine programmer. Alle sidene er av samme størrelse mens segmentene er forskjellige. Segmentering har flere lineære adresserom, og bare sideavspilling. Segmentene tillater logisk partisjonering og beskyttelse av applikasjonskomponenter, og sidene gjør det ikke.

3. Fordeler med personsøking og segmentering

Personsøking, som er gjennomsiktig for programmereren, eliminerer ekstern fragmentering og sikrer dermed effektiv bruk av hovedminne. Brikkene som beveger seg inn og ut av hovedminne er faste og i samme størrelse, så det er mulig å utvikle sofistikerte minneadministrasjonsalgoritmer som utnytter programmets oppførsel. Segmentering er synlig for utvikleren og har evnen til å håndtere veksten av datastruktur, modularitet og støtte for utveksling og beskyttelse.

Personsøker vs Segmentering: Sammenligningstabel

personsøker

segmentering

fast side størrelse segmenter er ikke løst i størrelse
usynlig for programmereren synlig for programmerer
en lineær adresserom flere lineære adresserom
tillater ikke logisk partisjonering og beskyttelse av applikasjonskomponenter tillater

Sammendrag av personsøking og segmentering

  • Personsøker er basert på distribusjonen av hele adresserommet på faste lengderblokker som drives som minnekvantiserer. Videre er det nødvendig å gi et middel for å markere tilgjengelig minne som kan utføres ved tilstedeværelsen av "topptekst" på hver side som angir statusen til siden (global koblet liste hvor hver node peker til neste ledige side) eller ved Plasser gratis sideadressen i det globale systemet, som vanligvis er den verste løsningen.
  • Segmentering betyr å dele adresserommet i segmenter som har tydelig merket tilgangsrettigheter til MMU-prosessoren. Innenfor segmentet tildeler prosessene nøyaktig så mye minne som de trenger, men problemet med minnehåndtering er hvordan du gir en slik tildeling der den kan bevare stor nok kontinuerlig blokkminnelse som kan trenge litt tid.