Søker inn Operating System (OS): Hva er, fordeler, eksempel

⚡ Smart oppsummering

Personsøking er en minnehåndteringsteknikk som lagrer prosesser på sider med fast størrelse og laster dem inn i fysiske minnerammer av samme størrelse, slik at operativsystemet kan bruke ikke-sammenhengende minne, unngå ekstern fragmentering og få tilgang til data raskere.

  • 📄 Definisjon: Personsøking deler logisk minne inn i sider med fast størrelse og fysisk minne inn i like store rammer, kartping én side til én ramme.
  • 🗺️ Sidetabell: Operativsystemet bruker en sidetabell for å oversette hvert logiske sidetall til den fysiske rammeadressen.
  • 🛡️ Beskyttelse: En gyldig/ugyldig bit på hver sidetabelloppføring beskytter minnet og markerer hvilke sider en prosess kan få tilgang til.
  • Fordeler: Personsøking fjerner ekstern fragmentering og gjør bytteping mellom sider og rammer av samme størrelse enkelt og raskt.
  • ⚠️ Avveininger: Sideveksling kan forårsake intern fragmentering og overhead for sidetabeller, mens segmentering i stedet bruker segmenter med variabel størrelse som samsvarer med programstrukturen.
  • 🤖 AI-vinkel: Maskinlæring finjusterer beslutninger om sideutskifting, og Copilot hjelper til med å skrive kode for personsøking og adresseoversettelse.

Søker inn Operating System

Hva er personsøking i OS?

Øker er en lagringsmekanisme som lar operativsystemet hente prosesser fra sekundærlagring til hovedminnet i form av sider. I paging-metoden er hovedminnet delt inn i små blokker med fast størrelse av fysisk minne, som kalles rammer. Størrelsen på en ramme holdes den samme som på en side for å oppnå maksimal utnyttelse av hovedminnet og for å unngå ekstern fragmentering. Paging brukes for raskere tilgang til data, og det er et logisk konsept.

Eksempel på personsøking i OS

For å forstå hvordan sider tilordnes til rammer, kan du se på et enkelt eksempel. Hvis hovedminnestørrelsen er 16 KB og rammestørrelsen er 1 KB, er hovedminnet delt inn i en samling på 16 rammer på 1 KB hver.

Det er fire separate prosesser i systemet, A1, A2, A3 og A4, på 4 KB hver. Her er alle prosessene delt inn i sider på 1 KB hver, slik at operativsystemet kan lagre én side i én ramme.

I begynnelsen av prosessen forblir alle rammene tomme, så alle sidene i prosessene lagres sammenhengende.

Eksempel på personsøking i operativsystem med sider lastet inn sammenhengende

I dette eksemplet kan du se at A2 og A4 flyttes til ventemodus etter en stund. Derfor blir åtte rammer tomme, og andre sider kan lastes inn i disse tomme blokkene. Prosessen A5, med størrelse 8 sider (8 KB), venter i klarkøen.

Eksempel på personsøking i operativsystem med prosess lastet inn i ikke-sammenhengende rammer

Nå er det åtte ikke-sammenhengende rammer tilgjengelig i minnet, og paging gir fleksibiliteten til å lagre prosessen på forskjellige steder. Dette lar operativsystemet laste inn sidene i prosess A5 i stedet for A2 og A4.

Hva er personsøkerbeskyttelse?

Personsøkingsprosessen beskyttes ved å sette inn en ekstra bit kalt gyldig/ugyldig-biten. Minnebeskyttelse i personsøking oppnås ved å knytte beskyttelsesbiter til hver side. Disse bitene er knyttet til hver sidetabelloppføring og spesifiserer beskyttelsen som er tillatt på den tilsvarende siden.

Fordeler med personsøking

Her er fordelene med å bruke personsøkingsmetoden:

  • Det er en brukervennlig Minnehåndtering algoritme.
  • Det er ikke behov for ekstern fragmentering.
  • Byttping er enkelt mellom sider av samme størrelse og siderammer.

Ulemper med personsøking

Her er ulempene og ulempene med personsøking:

  • Det kan føre til intern fragmentering.
  • Sidetabeller bruker ekstra minne.
  • Personsøking på flere nivåer kan føre til minnereferanseoverhead.

Hva er segmentering?

Segmentering fungerer nesten likt som paging. Den eneste forskjellen mellom de to er at segmenter har variabel lengde, mens sider i paging-metoden alltid har fast størrelse.

Et programsegment inkluderer programmets hovedfunksjon, datastrukturer, verktøyfunksjoner og så videre. Operativsystemet vedlikeholder en segmentkarttabell for alle prosessene. Den inkluderer også en liste over ledige minneblokker, sammen med størrelsen, segmentnumrene og minneplasseringene i hovedminnet eller virtuelt minne.

Fordeler med segmentering

Her er fordelene og fordelene med segmentering:

  • Den tilbyr beskyttelse innenfor segmentene.
  • Du kan oppnå deling ved å la segmenter referere til flere prosesser.
  • Det forårsaker ikke intern fragmentering.
  • Segmenttabeller bruker mindre minne enn sideveksling.

Ulemper med segmentering

Her er ulempene og ulempene med segmentering:

  • I segmenteringsmetoden lastes prosesser inn og fjernes fra hovedminnet. Derfor separeres den ledige minneplassen i små biter, noe som kan skape et problem med ekstern fragmentering.
  • Det er en kostbar minnehåndteringsalgoritme.

Spørsmål og svar

En sidefeil oppstår når en prosess ber om en side som ikke er i hovedminnet. Operativsystemet setter prosessen på pause, henter siden fra sekundært lagringsplass til en ledig ramme, og gjenopptar deretter kjøringen.

En sidetabell er en datastruktur operativsystemet beholder for hver prosess. Den kartlegger hvert logiske sidetall til den fysiske rammen som inneholder den siden, noe som muliggjør korrekt adresseoversettelse under utførelse.

TLB er en liten, rask hurtigbuffer som lagrer nylige side-til-ramme-kartpings. Den fremskynder adresseoversettelsen ved å unngå et fullstendig sidetabelloppslag i minnet for ofte besøkte sider.

En side er en blokk med fast størrelse av en prosess i logisk minne, mens en ramme er en blokk med fysisk minne av samme størrelse. Sideveksling laster hver side inn i nøyaktig én ledig ramme.

Behovsbasert sideveksling laster bare inn en side i minnet når prosessen faktisk refererer til den, i stedet for å laste inn hele prosessen på forhånd. Dette sparer minne og fremskynder prosessoppstart.

Intern fragmentering sløser med plass i en tildelt ramme når en side ikke fyller den fullstendig. Ekstern fragmentering etterlater spredte, frie mellomrom mellom tildelinger. Sideveksling fjerner ekstern fragmentering, men kan fortsatt forårsake intern fragmentering.

Maskinlæringsmodeller forutsier fremtidige sidehenvisninger for å veilede beslutninger om sideerstatning og forhåndshenting. Disse AI-teknikkene tar sikte på å redusere sidefeilfrekvensen og forbedre minnebruken i datasentre og skysystemer.

Ja. GitHub Copilot kan generere FIFO-, LRU- og optimal sideerstatningskode, pluss sidevekslingssimuleringer i C. Javaeller PythonVerifiser alltid antall feil og kanttilfeller før du stoler på utdataene.

Oppsummer dette innlegget med: