Diferența dintre alocarea de memorie contiguoasă și necondiționată

principala diferență între alocarea de memorie contiguă și necondiționată este aceea că alocarea contiguoasă de memorie atribuie blocuri consecutive de memorie unui proces, în timp ce alocarea de memorie necondiționată atribuie blocuri separate de memorie unui proces.

Alocarea de memorie alocată și necondiționată sunt două modele de alocare a memoriei. Alocarea contiguă a memoriei atribuie blocurilor de memorie consecutive unui proces. Alocarea necondiționată a memoriei atribuie diferite blocuri de memorie într-un mod neconsecutiv unui proces. În alocarea contiguată, uneori ar fi dificil să găsiți un bloc de memorie suficient de mare pentru a se potrivi unui proces. Cu toate acestea, în alocarea necondiționată a memoriei, este mai ușor să găsiți blocuri de memorie în diferite locații, deoarece nu necesită blocuri de memorie consecutive.

Domenii cheie acoperite

1. Ce este alocarea contiguă a memoriei
     - Definiție, funcționalitate
2. Ce este alocarea necondiționată a memoriei
     - Definiție, funcționalitate
3. Diferența dintre alocarea de memorie contiguoasă și necondiționată
     - Compararea diferențelor cheie

Termeni cheie

Alocarea contiguă a memoriei, fragmentarea externă, fragmentarea internă, alocarea necondiționată a memoriei, sistemul de operare

Ce este alocarea contiguă a memoriei

În alocarea contiguă a memoriei, o singură secțiune contiguă a blocului de memorie este atribuită unui proces. Prin urmare, există un singur proces într-un bloc al blocului de memorie contiguu. Pentru a obține alocarea contiguă a memoriei, memoria poate fi împărțită în partiții cu dimensiune fixă. Fiecare partiție are un singur proces.

În fragmentarea internă, dacă o memorie alocată pentru un proces este mai mare decât este necesar, atunci partea rămasă nu este utilizată. Nu poate fi folosit pentru alt proces. Alocarea confortabilă a memoriei poate provoca această fragmentare internă.

Alocarea confortabilă a memoriei poate accelera executarea procesului deoarece minimizează cheltuielile de traducere a adreselor. Cu toate acestea, ar putea fi dificil să găsiți un bloc de memorie care să fie suficient de mare pentru a se potrivi unui proces.

Ce este alocarea necondiționată a memoriei

În alocarea necontiguită a memoriei, procesul este alocat mai multor blocuri de memorie la diferite locații de memorie din memorie. În fragmentarea internă, blocul de memorie atribuit unui proces este mare, astfel încât porțiunile rămase nu pot fi folosite pentru un alt proces; astfel, ea rămâne nefolosită. În fragmentarea externă, spațiul total de memorie este suficient pentru a locui într-un proces, dar nu este învecinat, deci nu poate fi folosit. Alocarea necondiționată a memoriei oferă o soluție pentru fragmentarea internă și externă. Minimizează pierderile de memorie.

Chiar dacă alocarea necondiționată a memoriei reduce pierderea de memorie, are unele dezavantaje. Aceasta generează cheltuieli generale datorită traducerii adreselor. Mai mult, deoarece diferitele secțiuni ale aceluiași proces se găsesc în diferite locații de memorie, acestea pot reduce la minimum viteza generală de execuție.

Diferența dintre alocarea de memorie contiguoasă și necondiționată

Definiție

Alocarea memoriei contigue este un model de alocare a memoriei care atribuie blocuri de memorie având adrese consecutive unui proces. Alocarea necondiționată a memoriei este un model de alocare a memoriei care atribuie un proces unui bloc de memorie aflat în locația diferită.

Bază

Alocarea contiguă de memorie atribuie blocuri consecutive de memorie unui proces. Alocarea necontinuă a memoriei atribuie un proces blocurilor de memorie situate în locații diferite. Urmează o modalitate neconsecutivă.

deasupra

Overhead este minimă în alocarea contiguă a memoriei. Nu are prea multe traduceri de adrese în timp ce execută un proces. Alocarea necondiționată a memoriei conține mai multe cheltuieli generale, deoarece există mai multe traduceri de adrese.

Viteză de execuție

Un proces în memoria contiguă se execută mai repede, deoarece întregul proces se află într-un bloc secvențial. Pe de altă parte, un proces în memorie necontencioasă necesită mai mult timp pentru a fi executat, deoarece este în diferite locații ale memoriei.

Controlul

Este mai ușor pentru sistemul de operare să controleze memoria contiguă. Este dificil să controlezi memoria necontencioasă.

Concluzie

Diferența dintre alocarea de memorie contiguă și cea necondiționată este aceea că alocarea de memorie limitată atribuie blocuri consecutive de memorie unui proces, în timp ce alocarea de memorie necondiționată alocă blocuri separate de memorie unui proces.

Referinţă:

1. Alocarea memoriei, educație 4u, 24 aprilie 2018, disponibil aici.

Datorită fotografiei:

1. "CPT Memory Addressable" Prin Pluke - Activitate proprie (CC BY 3.0) prin Wikimedia Commons