Memory Management i OS: sammenhengende, bytte, fragmentering

Innholdsfortegnelse:

Anonim

Hva er Memory Management?

Memory Management er prosessen med å kontrollere og koordinere dataminne, tildele deler kjent som blokker til forskjellige programmer som kjører for å optimalisere systemets totale ytelse.

Det er den viktigste funksjonen til et operativsystem som administrerer primærminnet. Det hjelper prosesser med å bevege seg frem og tilbake mellom hovedminnet og kjøringsdisken. Det hjelper OS med å holde oversikt over hvert minneplassering, uavhengig av om det er tildelt en eller annen prosess, eller om det fortsatt er gratis.

I denne opplæringen om operativsystemet vil du lære:

  • Hva er Memory Management?
  • Hvorfor bruke Memory Management?
  • Minnehåndteringsteknikker
  • Hva er bytte?
  • Hva er minnetildeling?
  • Hva er personsøk?
  • Hva er fragmenteringsmetode?
  • Hva er segmentering?
  • Hva er dynamisk lasting?
  • Hva er dynamisk kobling?
  • Forskjellen mellom statisk og dynamisk belastning
  • Forskjellen mellom statisk og dynamisk kobling

Hvorfor bruke Memory Management?

Her er grunner til å bruke minnestyring:

  • Den lar deg sjekke hvor mye minne som skal tildeles til prosesser som bestemmer hvilken prosessor som skal få minne til hvilken tid.
  • Sporer når inventar blir frigjort eller ikke tildelt. I følge den vil den oppdatere statusen.
  • Det tildeler plassen til applikasjonsrutiner.
  • Det sørger også for at disse applikasjonene ikke forstyrrer hverandre.
  • Hjelper med å beskytte forskjellige prosesser fra hverandre
  • Den plasserer programmene i minnet slik at minnet blir utnyttet i sin fulle grad.

Minnehåndteringsteknikker

Her er noen av de mest avgjørende minnestyringsteknikkene:

Enkelt sammenhengende tildeling

Det er den enkleste minnestyringsteknikken. I denne metoden er alle typer dataminnes minne, bortsett fra en liten del som er reservert for operativsystemet, tilgjengelig for ett program. MS-DOS-operativsystemet tildeler for eksempel minne på denne måten. Et innebygd system kjører også på en enkelt applikasjon.

Partisjonert tildeling

Det deler primærminnet i forskjellige minnepartisjoner, som for det meste er sammenhengende områder av minnet. Hver partisjon lagrer all informasjon for en bestemt oppgave eller jobb. Denne metoden består i å tildele en partisjon til en jobb når den starter og ikke tildeles når den slutter.

Paged Memory Management

Denne metoden deler datamaskinens hovedminne inn i enheter i fast størrelse, kjent som siderammer. Denne styringsenheten for maskinvareminne kartlegger sider i rammer som skal tildeles på sidebasis.

Segmentert minnehåndtering

Segmentert minne er den eneste minneadministrasjonsmetoden som ikke gir brukerens program et lineært og sammenhengende adresseområde.

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?

Bytte er en metode der prosessen skal byttes midlertidig fra hovedminnet til støttelageret. Den vil senere bli brakt tilbake i minnet for å fortsette utførelsen.

Backing store er en harddisk eller annen sekundær lagringsenhet som skal være stor nok til å kunne kopiere alle minnebilder for alle brukere. Det er også i stand til å tilby direkte tilgang til disse minnebildene.

Fordeler med å bytte

Her er det store fordeler / fordeler ved å bytte:

  • Det gir en høyere grad av programmering.
  • Tillater dynamisk flytting. For eksempel, hvis adressebinding ved utførelsestidspunkt blir brukt, kan prosesser byttes på forskjellige steder. Ellers i tilfelle kompilerings- og lastetidsbindinger, bør prosesser flyttes til samme sted.
  • Det hjelper å få bedre utnyttelse av minnet.
  • Minimum sløsing med CPU-tid når den er ferdig, slik at den enkelt kan brukes på en prioritetsbasert planleggingsmetode for å forbedre ytelsen.

Hva er minnetildeling?

Minnetildeling er en prosess der dataprogrammer tildeles minne eller plass.

Her er hovedminnet delt inn i to typer partisjoner

  1. Lite minne - Operativsystemet ligger i denne typen minne.
  2. High Memory - Brukerprosesser holdes i høyt minne.

Partisjonstildeling

Minne 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 ordningene for fordeling av partisjoner:

  • Første tilpasning : I denne typen tilpasning tildeles partisjonen, som er den første tilstrekkelige blokken fra begynnelsen av hovedminnet.
  • Best Fit: Den tildeler prosessen til partisjonen som er den første minste partisjonen blant de gratis partisjonene.
  • Worst Fit: Det tildeler prosessen til partisjonen, som er den største tilstrekkelig fritt tilgjengelige partisjonen i hovedminnet.
  • Next Fit: 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øk?

Personsøk er en lagringsmekanisme som lar OS hente prosesser fra sekundærlagring til hovedminnet i form av sider. I personsøkemetoden er hovedminnet delt inn i små fysiske blokker med fast størrelse, som kalles rammer. Størrelsen på en ramme bør holdes den samme som på en side for å ha maksimal utnyttelse av hovedminnet og for å unngå ekstern fragmentering. Personsøk 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 minne, som er for liten til å brukes av andre prosesser.

Noen ganger kalles prosesser som ikke er i stand til å allokere til minneblokker fordi den lille størrelsen og minneblokkene alltid forblir ubrukt, fragmentering. Denne typen problemer skjer under et dynamisk minnetildelingssystem 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 minneinnhold for å plassere alt ledig minne sammen i en enkelt blokk.
  • Den interne fragmenteringen kan reduseres ved å tildele 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øk. Den eneste forskjellen mellom de to er at segmentene har variabel lengde, mens sidene alltid har fast størrelse i personsøkingsmetoden.

Et programsegment inkluderer programmets hovedfunksjon, datastrukturer, nyttefunksjoner osv. OS har en segmentkartetabell for alle prosessene. Den inneholder også en liste over ledige minneblokker sammen med størrelse, segmentnummer og minneplasseringer i hovedminnet eller det virtuelle minnet.

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 format. Hovedprogrammet lastes inn i minnet og kjøres. Dynamisk lasting gir også bedre minneutnyttelse.

Hva er dynamisk kobling?

Kobling er en metode som hjelper OS med å samle og slå sammen forskjellige moduler med kode og data i 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 belastningstid. I dynamisk koblingsmetode kobles biblioteker på utføringstidspunktet, slik at programkodestørrelsen kan forbli liten.

Forskjellen mellom statisk og dynamisk belastning

Statisk lasting Dynamisk belastning
Statisk lasting brukes når du vil laste programmet statisk. Så på tidspunktet for utarbeidelsen, vil hele programmet bli koblet og samlet uten behov for noen ekstern modul eller programavhengighet. I et dynamisk lastet program vil referanser bli gitt og lastingen vil bli gjort på tidspunktet for utførelsen.
Ved lastetid lastes hele programmet i minnet og starter kjøringen. Rutiner for biblioteket lastes bare inn i minnet når det kreves i programmet.

Forskjellen mellom statisk og dynamisk kobling

Her er hovedforskjellen mellom statisk og dynamisk kobling:

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

Sammendrag:

  • Minnehåndtering er prosessen med å kontrollere og koordinere dataminnet, og tildele deler som kalles blokker til forskjellige kjørende programmer for å optimalisere systemets totale ytelse.
  • Den lar deg sjekke hvor mye minne som skal tildeles til prosesser som bestemmer hvilken prosessor som skal få minne til hvilken tid.
  • I Single Contiguous Allocation er alle typer datamaskiners minne unntatt en liten del som er reservert for operativsystemet tilgjengelig for ett program
  • Partisjonert tildelingsmetode deler hovedminnet i forskjellige minnepartisjoner, som for det meste er sammenhengende områder av minnet
  • Paged Memory Management-metoden deler datamaskinens hovedminne i enheter i fast størrelse, såkalte siderammer
  • Segmentert minne er den eneste minneadministrasjonsmetoden som ikke gir brukerens program et lineært og sammenhengende adresseområde.
  • Bytte er en metode der prosessen skal byttes midlertidig fra hovedminnet til støttelageret. Den vil senere bli brakt tilbake i minnet for å fortsette utførelsen.
  • Minnetildeling er en prosess der dataprogrammer tildeles minne eller plass.
  • Personsøk er en lagringsmekanisme som lar OS hente prosesser fra sekundærlagring til hovedminnet i form av sider.
  • Fragmentering refererer til tilstanden til en disk der filer er delt inn i biter spredt rundt disken.
  • Segmenteringsmetoden fungerer nesten på samme måte som personsøk. Den eneste forskjellen mellom de to er at segmentene har variabel lengde, mens sidene alltid har fast størrelse i personsøkingsmetoden.
  • 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 og slå sammen forskjellige moduler med kode og data i en enkelt kjørbar fil.