Rekommenderas, 2024

Redaktionen

Skillnad mellan sammanhängande och icke-sammanhängande minnetilldelning

Minne är ett stort antal byte, där varje byte har sin egen adress. Minnesallokeringen kan klassificeras i två metoder sammanhängande minnetilldelning och icke-sammanhängande minnesallokering. Huvudskillnaden mellan sammanhängande och icke-sammanhängande minnesallokering är att den sammanhängande minnesallokationen tilldelar de efter varandra följande minnesminskningarna till en process som begär minne, medan den icke-sammanhängande minnesallokeringen tilldelar de separata minnesblocken på den olika platsen i minnesutrymmet på ett icke-följande sätt till en process som begär minne. Vi kommer att diskutera några fler skillnader mellan angränsande och icke-sammanhängande minnesallokering med hjälp av jämförelsetabellen som visas nedan.

Jämförelsediagram

Basera jämförelsenKontinuerlig minnetilldelningNoncontiguous Memory Allocation
GrundläggandeTilldelar efterföljande block av minne till en process.Tilldelar separata minneblock till en process.
Allmänna omkostnaderKontinuerlig minnesallokering har inte överskridande av adressöversättning under körning av en process.Noncontiguous minneallokering har överhuvudtaget adressadressen under genomförandet av en process.
ExekveringsfrekvensEn process kör fetter i angränsande minnesallokeringEn process exekverar ganska långsammare relativt i icke-sammanhängande minnesallokering.
LösningMinnesutrymmet måste delas in i den fasta partitionen och varje partition är allokerad till en enda process.Dela processen i flera block och placera dem i olika delar av minnet beroende på tillgången på ledigt minne.
TabellEn tabell underhålls av operativsystemet som behåller listan över tillgänglig och upptagen partition i minnesutrymmetEn tabell måste bibehållas för varje process som bär basadresserna till varje block som har förvärvats av en process i minnet.

Definition av sammanhängande minnetilldelning

Operativsystemet och användarens processer måste vara inrymda i huvudminnet. Därför är huvudminnet uppdelat i två partitioner: vid en partition ligger operativsystemet och i övrigt ligger användarprocesserna uppe. Under vanliga förhållanden måste de flera användarprocesserna ligga i minnet samtidigt, och därför är det viktigt att överväga fördelningen av minne till processerna.

Kontinuerlig minnesallokering är en av metoderna för minnesallokering. Vid angränsande minnesallokering tilldelas en enda sammanhängande sektion av minnesblock när förfarandet begärs för minnet till processen enligt dess krav.

Den angränsande minnesallokeringen kan uppnås genom att dela minnet i den fasta partitionen och allokera varje partition till en enda process. Men detta kommer att orsaka graden av multiprogrammering, som begränsar antalet fasta partitioner som har gjorts i minnet. Den angränsande minnesallokeringen leder också till den interna fragmenteringen . Gilla om ett minnesblock med fast storlek som är allokerat till en process är något större än dess krav, kallas det vänstra minnesutrymmet i blocket intern fragmentering. När processen som är bosatt i partitionen avbryts blir partitionen tillgänglig för en annan process.

I det variabla partitionsschemat upprätthåller operativsystemet ett bord som indikerar vilken delning av minnet som är ledigt och som upptas av processerna. Den sammanhängande minnesallokeringen förser utförandet av en process genom att minska överkostnaderna för adressöversättning.

Definition icke-sammanhängande minnetilldelning

Den icke-sammanhängande minnesallokeringen tillåter en process att förvärva flera minnesblock på den olika platsen i minnet enligt dess krav. Den icke-sammanhängande minnesallokeringen minskar även minnesavbrottet som orsakas av intern och extern fragmentering. Eftersom det använder minneshålen, skapas under intern och extern fragmentering.

Söka och segmentera är de två sätten som gör att en process fysiska adressutrymme inte är sammanhängande. Vid icke-sammanhängande minnesallokering delas processen in i block (sidor eller segment) som placeras i det olika området av minnesutrymmet i enlighet med minnets tillgänglighet.

Den icke-sammanhängande minnesallokeringen har en fördel att minska minnesavbrott, men det ökar omkostnaderna för adressöversättning. Eftersom delarna av processen placeras på en annan plats i minnet, saktar det minnet av minnet eftersom tiden är förbrukad i adressöversättning.

Här måste operativsystemet behålla tabellen för varje process som innehåller basadressen för varje block som förvärvas av processen i minnesutrymmet.

Viktiga skillnader mellan sammanhängande och icke-sammanhängande minnetilldelning

  1. Den grundläggande skillnaden mellan angränsande och icke-sammanhängande minnesallokering är att den sammanhängande tilldelningen allokerar ett enda sammanhängande minnesblock till processen medan den icke-kontinenta fördelningen delar upp processen i flera block och placerar dem i minnets olika adressutrymme, dvs på ett icke-sammanhängande sätt .
  2. Vid angränsande minnesallokering lagras processen i sammanhängande minnesutrymme; så det finns ingen omkostnad för adressöversättning under körning. Men vid icke-sammanhängande minnesallokering finns en överskridande adressadress, medan processkörningen, eftersom processblocken sprids i minnesutrymmet.
  3. Process som lagras i det angränsande minnet exekverar snabbare i jämförelse med processen lagrad i icke-sammanhängande minnesutrymme.
  4. Lösningen för angränsande minnesallokering är att dela minnesutrymmet i den fasta partitionen och allokera en partition till en enda process. Å andra sidan, vid icke-kontinuerlig minnesallokering delas en process upp i flera block och varje block placeras på olika platser i minnet beroende på minnets tillgänglighet.
  5. Vid angränsande minnesallokering måste operativsystemet behålla en tabell som anger vilken partition som är tillgänglig för processen och som upptas av processen. Vid icke-sammanhängande minnesallokering upprätthålls en tabell för varje process som indikerar basadressen för varje block av processen placerad i minnesutrymmet.

Slutsats:

Kontinuerlig minnesallokering skapar ingen omkostnader och ökar processens exekveringshastighet men ökar minnesavbrottet . I sin tur skapar icke-sammanhängande minnesallokering omkostnader för adressöversättning, reducerar körhastigheten för en process men ökar minnesutnyttjandet . Så det finns fördelar och nackdelar med båda fördelningsmetoderna.

Top