Anbefalt, 2024

Redaksjonens

Forskjellen mellom sammenhengende og ubegrenset minneallokering

Minne er et stort utvalg av bytes, hvor hver byte har sin egen adresse. Minnetildelingen kan klassifiseres i to metoder sammenhengende minneallokering og ikke-sammenhengende minneallokering. Hovedforskjellen mellom sammenhengende og ikke-sammenhengende minneallokering er at den sammenhengende minnetildeling tilordner de påfølgende minneblokkene til en prosess som ber om minne mens den ikke-sammenhengende minnetildeling tilordner de separate minneblokkene på den forskjellige plasseringen i minnesområdet på en ikke- sammenhengende måte til en prosess som ber om minne. Vi vil diskutere noen flere forskjeller mellom sammenhengende og ikke-sammenhengende minneallokering ved hjelp av sammenligningstabell vist nedenfor.

Sammenligningstabel

Basis sammenligningenTilgrensende minneallokeringIkke-sammenhengende minneallokering
grunn~~POS=TRUNCTillater påfølgende blokker av minne til en prosess.Tillater separate blokker med minne til en prosess.
overheadKontinuerlig minnetildeling har ikke overhead av adressetranslation under utførelse av en prosess.Ikke-sammenhengende minneallokering har overhead av adressetranslation mens utførelse av en prosess.
UtførelsesfrekvensEn prosess utfører fetter i sammenhengende minneallokeringEn prosess utføres ganske tregere forholdsvis i ikke-sammenhengende minneallokering.
LøsningMinneplassen må deles inn i den faste partisjonen, og hver partisjon er bare tildelt en enkelt prosess.Del prosessen i flere blokker og plasser dem i ulike deler av minnet i henhold til tilgjengeligheten av ledig plass tilgjengelig.
BordEt bord vedlikeholdes av operativsystemet som opprettholder listen over ledig og opptatt partisjon i minnetEt bord må opprettholdes for hver prosess som bærer basisadressene til hver blokk som er blitt ervervet av en prosess i minnet.

Definisjon av sammenhengende minneallokering

Operativsystemet og brukerens prosesser begge må være innkvartert i hovedminnet. Derfor er hovedminnet delt inn i to partisjoner: på en partisjon opererer operativsystemet og ved andre brukerprosesser bor. Under vanlige forhold må de flere brukerprosessene ligge i minnet samtidig, og derfor er det viktig å vurdere tildeling av minne til prosessene.

Den sammenhengende minnetildelingen er en av metodene for minneallokering. Ved sammenhengende minnetildeling, når en prosess ber om minnet, tildeles en enkelt sammenhengende seksjon av minneblokker til prosessen i henhold til kravet.

Den sammenhengende minnetildelingen kan oppnås ved å dele minnet i den faste partisjonen og tildele hver partisjon kun til en enkelt prosess. Men dette vil føre til graden av flerprogrammering, som begrenser antall faste partisjoner som er gjort i minnet. Den sammenhengende minnetildelingen fører også til den interne fragmenteringen . Liker, hvis en fast størrelse minneblokk som er allokert til en prosess, er litt større enn dens krav, kalles det venstre minneplass i blokken intern fragmentering. Når prosessen som ligger i partisjonen, blir partisjonen tilgjengelig for en annen prosess.

I den variable partisjoneringsordningen opprettholder operativsystemet et bord som indikerer hvilken deling av minnet som er ledig og som opptas av prosessene. Den sammenhengende minnetildelingen fester utførelsen av en prosess ved å redusere overheads av adressetranslation.

Definisjon Ikke-sammenhengende minneallokering

Den ikke-sammenhengende minnetildelingen tillater en prosess å skaffe flere minneblokker på den forskjellige plasseringen i minnet i henhold til kravet. Den ikke-sammenhengende minnetildelingen reduserer også minnetavfallet som skyldes intern og ekstern fragmentering. Som det utnytter minneshullene, opprettet under intern og ekstern fragmentering.

Personsøking og segmentering er de to måtene som tillater at en prosess fysiske adresserom ikke er sammenhengende. Ved ikke-sammenhengende minneallokering er prosessen delt inn i blokker (sider eller segmenter) som plasseres i det forskjellige området av minnesplassen, i henhold til minnets tilgjengelighet.

Den ikke-sammenhengende minnetildelingen har en fordel å redusere minneavfall, men det øker overheads av adressetranslation. Da delene av prosessen er plassert på et annet sted i minnet, reduserer det utførelsen av minnet fordi tiden er forbruket i adressetranslation.

Her må operativsystemet vedlikeholde tabellen for hver prosess som inneholder basisadressen til hver blokk som er anskaffet av prosessen i minnet.

Viktige forskjeller mellom sammenhengende og ubegrenset minneallokering

  1. Den grunnleggende forskjellen mellom sammenhengende og ikke-sammenhengende minneallokering er at sammenhengende tildeling allokerer en enkelt sammenhengende blokk av minne til prosessen, mens den ikke-sammenhengende allokering deler prosessen i flere blokker og plasserer dem i den forskjellige adresserommet til minnet, dvs. på en ikke-sammenhengende måte .
  2. Ved sammenhengende minneallokering lagres prosessen i sammenhengende minneplass; så det er ingen overhead av adressetranslation under utførelse. Men i ikke-sammenhengende minnetildeling er det et overhead av adressetranslation mens prosesskjøring, da prosessblokkene er spredt i minneplassen.
  3. Prosess lagret i sammenhengende minne utføres raskere i forhold til prosess lagret i ikke-sammenhengende minneplass.
  4. Løsningen for sammenhengende minneallokering er å dele minneplassen i den faste partisjonen og bare tildele en partisjon til en enkelt prosess. På de andre hendene, i ikke-kontinuerlig minneallokering, er en prosess delt inn i flere blokker, og hver blokk er plassert på forskjellige steder i minnet i henhold til tilgjengeligheten av minnet.
  5. Ved sammenhengende minneallokering må operativsystemet vedlikeholde et bord som angir hvilken partisjon som er tilgjengelig for prosessen, og som er opptatt av prosessen. Ved ikke-sammenhengende minneallokering opprettholdes en tabell for hver prosess som indikerer basisadressen til hver blokk av prosessen plassert i minnesområdet.

Konklusjon:

Kontinuerlig minnetildeling oppretter ikke noen overhead og fester utførelseshastigheten til prosessen, men øker minnetavfallet . I sin tur skaper ikke-sammenhengende minneallokering kostnader for adressetranslation, reduserer utførelseshastigheten til en prosess, men øker minnesutnyttelsen . Så det er fordeler og ulemper ved begge tildelingsmetoder.

Top