Sammenligningstabel
Basis sammenligningen | Tilgrensende minneallokering | Ikke-sammenhengende minneallokering |
---|---|---|
grunn~~POS=TRUNC | Tillater påfølgende blokker av minne til en prosess. | Tillater separate blokker med minne til en prosess. |
overhead | Kontinuerlig 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ørelsesfrekvens | En prosess utfører fetter i sammenhengende minneallokering | En prosess utføres ganske tregere forholdsvis i ikke-sammenhengende minneallokering. |
Løsning | Minneplassen 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. |
Bord | Et bord vedlikeholdes av operativsystemet som opprettholder listen over ledig og opptatt partisjon i minnet | Et 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.
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
- 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 .
- 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.
- Prosess lagret i sammenhengende minne utføres raskere i forhold til prosess lagret i ikke-sammenhengende minneplass.
- 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.
- 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.