Anbefalet, 2024

Redaktørens Valg

Forskel mellem sammenhængende og ikke-sammenhængende hukommelseallokering

Hukommelse er et stort udvalg af bytes, hvor hver byte har sin egen adresse. Hukommelsesallokationen kan klassificeres i to metoder sammenhængende hukommelsesallokering og ikke-sammenhængende hukommelseallokering. Den væsentligste forskel mellem sammenhængende og ikke-sammenhængende hukommelseallokering er, at den sammenhængende hukommelsesallokering tildeler de på hinanden følgende hukommelseshukommelser til en proces, der anmoder om hukommelse, mens den ikke-sammenhængende hukommelsesallokering tildeler de separate hukommelsesblokke på den forskellige placering i hukommelsesrummet på en ikke-sammenhængende måde til en proces, der anmoder om hukommelse. Vi vil diskutere nogle flere forskelle mellem sammenhængende og ikke-sammenhængende hukommelseallokering ved hjælp af sammenligningsdiagrammet vist nedenfor.

Sammenligningstabel

Basis sammenligningenKontinuerlig hukommelseallokeringIkke-tilstødende hukommelseallokering
GrundlæggendeTillader fortløbende blokke af hukommelse til en proces.Tillader separate hukommelsesblokke til en proces.
OverheadsVedvarende hukommelsesallokering har ikke overhead til adressetranslation under udførelsen af ​​en proces.Ikke-sammenhængende hukommelsesallokering har overhead af adressetranslation under udførelsen af ​​en proces.
Udførelse satsEn proces udfører fetter i sammenhængende hukommelseallokeringEn proces udføres ret langsommere forholdsvis i ikke-sammenhængende hukommelseallokering.
OpløsningHukommelsespladsen skal opdeles i den faste partition, og hver partition er kun tildelt en enkelt proces.Opdel processen i flere blokke og læg dem i forskellige dele af hukommelsen i henhold til tilgængeligheden af ​​ledigt lagerplads.
BordEn tabel opretholdes af operativsystemet, som opretholder listen over ledige og optagede partitioner i hukommelsesrummetDer skal opretholdes en tabel for hver proces, der bærer basisadresserne for hver blok, som er erhvervet ved en proces i hukommelsen.

Definition af sammenhængende hukommelseallokering

Operativsystemet og brugerens processer skal begge indkvarteres i hovedhukommelsen. Derfor er hovedhukommelsen opdelt i to partitioner: Ved en partition befinder operativsystemet sig, og i andre tilfælde opholder brugerprocesserne sig. Under normale forhold skal de mange brugerprocesser ligge i hukommelsen på samme tid, og derfor er det vigtigt at overveje fordelingen af ​​hukommelse til processerne.

Den sammenhængende hukommelsesallokering er en af ​​metoderne til hukommelseallokering. Ved sammenhængende hukommelsesallokering tildeles en enkelt sammenhængende sektion af hukommelsesblokke, når en proces anmoder om hukommelsen, til processen i henhold til dens krav.

Den sammenhængende hukommelseallokering kan opnås ved at dividere hukommelsen i den partikelformede partition og allokere hver partition kun til en enkelt proces. Men dette vil medføre graden af ​​multiprogrammering, der grænser til antallet af faste partitioner, der er udført i hukommelsen. Den sammenhængende hukommelseallokering fører også til den interne fragmentering . Hvis en fast størrelse hukommelsesblok, der er allokeret til en proces, er lidt større end dens krav, kaldes det venstre overrum i blokken intern fragmentering. Når processen, der befinder sig i partitionen, afbrydes, bliver partitionen tilgængelig for den anden proces.

I den variable partitioneringsskema opretholder operativsystemet et bord, der angiver, hvilken partition af hukommelsen der er fri og som optager processerne. Den sammenhængende hukommelsesallokering forøger udførelsen af ​​en proces ved at reducere overhead af adressetranslation.

Definition Ikke-sammenhængende hukommelseallokering

Den ikke-sammenhængende hukommelsesallokering gør det muligt for en proces at erhverve flere hukommelsesblokke på den anden placering i hukommelsen i overensstemmelse med dens krav. Den ikke-sammenhængende hukommelsesallokering reducerer også det hukommelsesspild, der skyldes intern og ekstern fragmentering. Da det udnytter hukommelseshullerne, der er skabt under intern og ekstern fragmentering.

Personsøgning og segmentering er de to måder, der gør det muligt for en process fysiske adresserum at være ikke-sammenhængende. Ved ikke-sammenhængende hukommelseallokering er processen opdelt i blokke (sider eller segmenter), der placeres i det forskellige område af hukommelsesrum i henhold til tilgængeligheden af ​​hukommelsen.

Den ikke-sammenhængende hukommelseallokering har en fordel at reducere hukommelsesspild, men det øger overhead af adressetranslation. Da delene af processen er placeret på en anden placering i hukommelsen, sænker det udførelsen af hukommelsen, fordi tiden forbruges i adressetranslation.

Her skal operativsystemet vedligeholde tabellen for hver proces, som indeholder basisadressen for hver blok, som er erhvervet ved processen i hukommelsesrummet.

Nøgleforskelle mellem sammenhængende og ikke-sammenhængende hukommelseallokering

  1. Den grundlæggende forskel mellem sammenhængende og ikke-sammenhængende hukommelseallokering er, at den sammenhængende allokering allokerer en enkelt sammenhængende blokhukommelse til processen, medens den ikke-sammenhængende allokering opdeler processen i flere blokke og placerer dem i det forskellige adressrum i hukommelsen, dvs. på en ikke-sammenhængende måde .
  2. Ved sammenhængende hukommelsesallokering lagres processen i sammenhængende hukommelsesplads; så der er ingen overhead af adressetranslation under udførelsen. Men ved ikke-sammenhængende hukommelseallokering er der en overhead af adressetranslation, mens procesudførelsen, da procesblokkene spredes i hukommelsesrummet.
  3. Processen gemt i sammenhængende hukommelse udføres hurtigere i sammenligning med proces, der er lagret i ikke-kontiøst hukommelsesrum.
  4. Løsningen til sammenhængende hukommelseallokering er at opdele hukommelsespladsen i den partikelformede partition og kun tildele en partition til en enkelt proces. På den anden side er en proces opdelt i flere blokke ved ikke-kontinuerlig hukommelseallokering, og hver blok er placeret på forskellige steder i hukommelsen i henhold til tilgængeligheden af ​​hukommelsen.
  5. Ved sammenhængende hukommelseallokering skal operativsystemet vedligeholde et bord, der angiver, hvilken partition der er tilgængelig for processen, og som er optaget af processen. Ved ikke-sammenhængende hukommelseallokering opretholdes en tabel for hver proces, der angiver basisadressen for hver blok af processen placeret i hukommelsesrummet.

Konklusion:

Vedvarende hukommelsesallokering skaber ingen overhead og fastgør udførelseshastigheden af ​​processen, men øger hukommelsesspild . Til gengæld skaber ikke-sammenhængende hukommelsesallokering overhead af adressetranslation, reducerer udførelseshastigheden for en proces, men øger hukommelsesudnyttelsen . Så der er fordele og ulemper ved begge tildelingsmetoder.

Top