Minneadministrasjon i OS: Sammenhengende, bytte, fragmentering

Hva er Memory Management?

Minnehåndtering er prosessen med å kontrollere og koordinere datamaskinens minne, tilordne deler kjent som blokker til forskjellige kjørende programmer for å optimalisere den generelle ytelsen til systemet.

Det er den viktigste funksjonen til et operativsystem som administrerer primærminnet. Det hjelper prosesser med å flytte frem og tilbake mellom hovedminnet og utførelsesdisken. Det hjelper OS å holde styr på hver minneplassering, uavhengig av om den er allokert til en prosess eller om den forblir ledig.

Hvorfor bruke minnebehandling?

Her er grunner til å bruke minnebehandling:

  • Den lar deg sjekke hvor mye minne som må allokeres til prosesser som bestemmer hvilken prosessor som skal få minne til hvilket tidspunkt.
  • Sporer når inventar blir frigjort eller ikke tildelt. Ifølge den vil den oppdatere statusen.
  • Den tildeler plass til søknadsrutiner.
  • Den sørger også for at disse applikasjonene ikke forstyrrer hverandre.
  • Bidrar til å beskytte ulike prosesser fra hverandre
  • Den plasserer programmene i minnet slik at minnet blir utnyttet fullt ut.

Minnehåndteringsteknikker

Her er noen mest avgjørende minnebehandlingsteknikker:

Enkel sammenhengende tildeling

Det er den enkleste minnehåndteringsteknikken. I denne metoden er alle typer datamaskinminne unntatt en liten del som er reservert for operativsystemet tilgjengelig for ett program. For eksempel tildeler MS-DOS-operativsystemet minne på denne måten. Et innebygd system kjører også på en enkelt applikasjon.

Partisjonert tildeling

Den deler primærminnet inn i forskjellige minnepartisjoner, som stort sett er sammenhengende områder av minnet. Hver partisjon lagrer all informasjon for en spesifikk oppgave eller jobb. Denne metoden består i å tildele en partisjon til en jobb når den starter og ikke tildelt når den slutter.

Sidet minnehåndtering

Denne metoden deler datamaskinens hovedminne inn i enheter med fast størrelse kjent som siderammer. Denne maskinvareminneadministrasjonsenheten tilordner sider til rammer som bør tildeles på sidebasis.

Segmentert minnehåndtering

Segmentert minne er den eneste minnebehandlingsmetoden som ikke gir brukerens program et lineært og sammenhengende adresserom.

Segmenter trenger maskinvarestøtte i form av en segmenttabell. Den inneholder den fysiske adressen til seksjonen i minne, størrelse og andre data som tilgangsbeskyttelsesbiter og status.

Hva er bytte?

Bytting er en metode der prosessen skal byttes midlertidig fra hovedminnet til støttelageret. Det vil senere bli brakt tilbake til minnet for fortsatt utførelse.

Sikkerhetslagring er en harddisk eller en annen sekundær lagringsenhet som bør være stor nok til å romme kopier av alle minnebilder for alle brukere. Den er også i stand til å tilby direkte tilgang til disse minnebildene.

Bytting

Fordeler med å bytte

Her er store fordeler/fordeler med å bytte:

  • Den tilbyr en høyere grad av multiprogrammering.
  • Tillater dynamisk flytting. For eksempel, hvis adressebinding på utførelsestidspunktet brukes, kan prosesser byttes på forskjellige steder. Ellers i tilfelle kompilering og lastetidsbindinger, bør prosesser flyttes til samme sted.
  • Det hjelper å få bedre utnyttelse av minnet.
  • Minimum sløsing med CPU-tid ved ferdigstillelse, slik at den enkelt kan brukes på en prioritetsbasert planleggingsmetode for å forbedre ytelsen.

Hva er minnetildeling?

Minneallokering er en prosess der dataprogrammer tildeles minne eller plass.

Her er hovedminnet delt inn i to typer partisjoner

  1. Lite minne - Operating system ligger i denne typen minne.
  2. Høyt minne– Brukerprosesser holdes i høyt minne.

Partisjonstildeling

Minnet er delt inn i forskjellige blokker eller partisjoner. Hver prosess tildeles i henhold til kravet. Partisjonstildeling er en ideell metode for å unngå intern fragmentering.

Nedenfor er de forskjellige partisjonstildelingsordningene:

  • First Fit: I denne typen tilpasning blir partisjonen tildelt, som er den første tilstrekkelige blokken fra begynnelsen av hovedminnet.
  • Passer best: Den tildeler prosessen til partisjonen som er den første minste partisjonen blant de gratis partisjonene.
  • Dårligste passform: Den tildeler prosessen til partisjon, som er den største tilstrekkelig fritt tilgjengelige partisjonen i hovedminnet.
  • Neste passform: Den ligner stort sett på den første Fit, men denne Fit søker etter den første tilstrekkelige partisjonen fra det siste tildelingspunktet.

Hva er personsøking?

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

Hva er Fragmentering?

Prosesser lagres og fjernes fra minnet, noe som skaper ledig minneplass, som er for liten til å brukes av andre prosesser.

Noen ganger kalles prosesser som ikke er i stand til å allokere til minneblokker fordi dens lille størrelse og minneblokker alltid forblir ubrukte fragmentering. Denne typen problemer oppstår under et dynamisk minneallokeringssystem når ledige blokker er ganske små, så det er ikke i stand til å oppfylle noen forespørsel.

To typer fragmenteringsmetoder er:

  1. Ekstern fragmentering
  2. Intern fragmentering
  • Ekstern fragmentering kan reduseres ved å omorganisere minneinnholdet for å plassere alt ledig minne sammen i en enkelt blokk.
  • Den interne fragmenteringen kan reduseres ved å tilordne den minste partisjonen, som fortsatt er god nok til å bære hele prosessen.

Hva er segmentering?

Segmenteringsmetoden fungerer nesten på samme måte som personsøking. Den eneste forskjellen mellom de to er at segmentene har variabel lengde, mens sidene i personsøkingsmetoden alltid har fast størrelse.

Et programsegment inkluderer programmets hovedfunksjon, datastrukturer, verktøyfunksjoner osv. OS 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.

Hva er dynamisk lasting?

Dynamisk lasting er en rutine for et program som ikke lastes inn før programmet kaller det. Alle rutiner bør finnes på disken i et flyttbart lasteformat. Hovedprogrammet vil bli lastet inn i minnet og vil bli utført. Dynamisk lasting gir også bedre utnyttelse av minneplass.

Hva er dynamisk kobling?

Kobling er en metode som hjelper OS med å samle inn og slå sammen ulike moduler med kode og data til en enkelt kjørbar fil. Filen kan lastes inn i minnet og kjøres. OS kan koble biblioteker på systemnivå til et program som kombinerer bibliotekene ved innlastingstid. I dynamisk koblingsmetode kobles biblioteker på utførelsestidspunktet, slik at programkodestørrelsen kan forbli liten.

Forskjellen mellom statisk og dynamisk lasting

Statisk lasting Dynamisk belastning
Statisk lasting brukes når du ønsker å laste programmet statisk. På tidspunktet for kompilering vil hele programmet bli koblet og kompilert uten behov for ekstern modul eller programavhengighet. I et dynamisk lastet program vil referanser bli gitt og lasting vil bli utført på tidspunktet for utførelse.
Ved lastingstid lastes hele programmet inn i minnet og starter kjøringen. Rutiner til biblioteket lastes inn i minnet bare når de er nødvendige i programmet.

Forskjellen mellom statisk og dynamisk kobling

Her er hovedforskjellen mellom statisk vs. dynamisk kobling:

Statisk kobling Dynamisk kobling
Statisk kobling brukes til å kombinere alle andre moduler som kreves av et program til en enkelt kjørbar kode. Dette hjelper OS med å forhindre enhver kjøretidsavhengighet. Når dynamisk kobling brukes, trenger den ikke å koble selve modulen eller biblioteket med programmet. I stedet for det, bruk en referanse til den dynamiske modulen som ble gitt på tidspunktet for kompilering og kobling.

Sammendrag

  • Minnehåndtering er prosessen med å kontrollere og koordinere datamaskinens minne, tilordne deler kalt blokker til forskjellige kjørende programmer for å optimalisere den generelle ytelsen til systemet.
  • Den lar deg sjekke hvor mye minne som må allokeres til prosesser som bestemmer hvilken prosessor som skal få minne til hvilket tidspunkt.
  • I Single Contiguous Allocation er alle typer datamaskinminne unntatt en liten del som er reservert for OS tilgjengelig for én applikasjon
  • Partisjonert tildelingsmetode deler primærminnet inn i forskjellige minnepartisjoner, som stort sett er sammenhengende områder av minnet
  • Sided Memory Management-metoden deler datamaskinens hovedminne inn i enheter med fast størrelse kjent som siderammer
  • Segmentert minne er den eneste minnebehandlingsmetoden som ikke gir brukerens program et lineært og sammenhengende adresserom.
  • Bytting er en metode der prosessen skal byttes midlertidig fra hovedminnet til støttelageret. Det vil senere bli brakt tilbake til minnet for fortsatt utførelse.
  • Minneallokering er en prosess der dataprogrammer tildeles minne eller plass.
  • Paging er en lagringsmekanisme som lar OS hente prosesser fra sekundærlagringen inn i hovedminnet i form av sider.
  • Fragmentering refererer til tilstanden til en disk der filer er delt inn i biter spredt rundt på disken.
  • Segmenteringsmetoden fungerer nesten på samme måte som personsøking. Den eneste forskjellen mellom de to er at segmentene har variabel lengde, mens sidene i personsøkingsmetoden alltid har fast størrelse.
  • Dynamisk lasting er en rutine for et program som ikke lastes inn før programmet kaller det.
  • Kobling er en metode som hjelper OS med å samle inn og slå sammen ulike moduler med kode og data til en enkelt kjørbar fil.