Recomandat, 2024

Alegerea Editorului

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

Memoria este o gamă largă de octeți, în care fiecare octet are o adresă proprie. Alocarea memoriei poate fi clasificată în două moduri de alocare a memoriei contigue și alocare neîntreruptă a memoriei. Diferența majoră dintre alocarea de memorie contiguă și cea necontiguoasă este aceea că alocarea de memorie contiguoasă atribuie blocurile consecutive de memorie unui proces care solicită memorie, în timp ce alocarea necondiționată a memoriei atribuie blocurile de memorie separate la locația diferită din spațiul de memorie într-o manieră neconsecutivă un proces care solicită memorie. Vom discuta mai multe diferențe între alocarea de memorie contiguuă și cea neîntreruptă cu ajutorul diagramei de comparație prezentată mai jos.

Diagramă de comparație

Bazați-vă pe comparațieAlocarea contiguă a memorieiAlocarea necondiționată a memoriei
De bazăAlocă blocuri consecutive de memorie unui proces.Alocă blocuri separate de memorie unui proces.
Cheltuieli generaleAlocarea de memorie limitată nu are costurile generale ale traducerii adreselor în timpul executării unui proces.Alocarea necondiționată a memoriei are cheltuieli generale pentru traducerea adreselor în timpul executării unui proces.
Rata de execuțieUn proces execută fatser în alocarea de memorie contiguăUn proces se execută relativ mai lent comparativ în alocarea necondiționată a memoriei.
SoluţieSpațiul de memorie trebuie împărțit în partiția cu dimensiune fixă ​​și fiecare partiție este alocată unui singur proces.Împărțiți procesul în câteva blocuri și plasați-le în diferite părți ale memoriei în funcție de disponibilitatea spațiului disponibil în memorie.
MasaUn tabel este menținut de sistemul de operare care menține lista de partiții disponibile și ocupate în spațiul de memorieTrebuie păstrat un tabel pentru fiecare proces care poartă adresele de bază ale fiecărui bloc care a fost achiziționat printr-un proces din memorie.

Definiția alocării contiguoase a memoriei

Sistemul de operare și procesele utilizatorului trebuie să fie stocate în memoria principală. Prin urmare, memoria principală este împărțită în două partiții: la o partiție sistemul de operare se află și la alta se află procesele utilizatorilor. În condiții obișnuite, mai multe procese ale utilizatorilor trebuie să se afle în memorie în același timp și, prin urmare, este important să se țină cont de alocarea memoriei proceselor.

Alocarea de memorie contiguă este una dintre metodele de alocare a memoriei. În alocarea contiguă a memoriei, atunci când un proces solicită memoria, o singură secțiune contiguă a blocurilor de memorie este atribuită procesului în funcție de cerința sa.

Alocarea contiguă a memoriei poate fi realizată prin împărțirea memoriei în partiția cu dimensiune fixă ​​și alocarea fiecărei partiții unui singur proces. Dar acest lucru va determina gradul de multiprogramare, legat de numărul de partiții fixe realizate în memorie. Alocarea contiguă a memoriei conduce, de asemenea, la fragmentarea internă . De exemplu, dacă un bloc de memorie cu dimensiune fixă ​​alocat unui proces este puțin mai mare decât cerința acestuia, atunci spațiul de memorie stânga din bloc este numit fragmentare internă. Când procesul care se află în partiție termină, partiția devine disponibilă pentru alt proces.

În schema de partiționare variabilă, sistemul de operare menține o tabelă care indică ce partiție a memoriei este liberă și care ocupă procesele. Alocarea contiguă de memorie facilitează executarea unui proces prin reducerea cheltuielilor generale de traducere a adreselor.

Definiția alocării de memorie neconsolidată

Alocarea neîntreruptă a memoriei permite procesului de achiziție a mai multor blocuri de memorie la locația diferită din memorie, în funcție de cerințele sale. Alocarea necondiționată a memoriei reduce, de asemenea, risipa de memorie cauzată de fragmentarea internă și externă. Folosind găurile de memorie create în timpul fragmentării interne și externe.

Pagingul și segmentarea sunt cele două metode care permit spațiului de adrese fizic al unui proces să nu fie învecinat. În alocarea neîntreruptă a memoriei, procesul este împărțit în blocuri (pagini sau segmente) care sunt plasate în zona diferită a spațiului de memorie, în funcție de disponibilitatea memoriei.

Alocarea necondiționată a memoriei are un avantaj de reducere a pierderii de memorie dar, însă, crește rata de acoperire a traducerii adreselor. Pe măsură ce părțile procesului sunt plasate într-o altă locație din memorie, aceasta încetinește executarea memoriei deoarece timpul este consumat în traducerea adreselor.

Aici, sistemul de operare trebuie să mențină tabelul pentru fiecare proces care conține adresa de bază a fiecărui bloc care este achiziționată de proces în spațiul de memorie.

Diferențele cheie între alocarea de memorie contiguoasă și necondiționată

  1. Diferența de bază dintre alocarea de memorie contiguă și cea necontencioasă este aceea că alocarea contiguă alocă un singur bloc de memorie contiguu procesului, în timp ce alocarea necondiționată împarte procesul în mai multe blocuri și le plasează în spațiul de adresă diferit al memoriei, adică într-o manieră necontencioasă .
  2. În alocarea contiguă a memoriei, procesul este stocat în spațiul de memorie alăturat; astfel încât nu există cheltuieli generale pentru traducerea adreselor în timpul execuției. Dar, în alocarea necondiționată a memoriei, există o cheltuială de translație a adreselor în timpul procesului de execuție, deoarece blocurile de proces sunt răspândite în spațiul de memorie.
  3. Procesul stocat în memoria contiguă se execută mai repede în comparație cu procesul stocat în spațiul de memorie necontenit.
  4. Soluția pentru alocarea contiguă a memoriei este de a împărți spațiul de memorie în partiția cu dimensiune fixă și de a aloca o partiție unui singur proces. Pe celelalte mâini, în procesul de alocare a memoriei necontenabile, un proces este împărțit în mai multe blocuri și fiecare bloc este plasat în locuri diferite din memorie, în funcție de disponibilitatea memoriei.
  5. În alocarea contiguă a memoriei, sistemul de operare trebuie să mențină un tabel care indică care partiție este disponibilă pentru proces și care este ocupată de proces. În alocarea necondiționată a memoriei, se păstrează un tabel pentru fiecare proces care indică adresa de bază a fiecărui bloc al procesului plasat în spațiul de memorie.

Concluzie:

Alocarea confortabilă a memoriei nu creează nicio cheltuială și asigură viteza de execuție a procesului, dar crește rata de memorie . În schimb, alocarea necondiționată a memoriei creează cheltuieli generale de traducere a adreselor, reduce viteza de execuție a unui proces, dar crește gradul de utilizare a memoriei . Deci există argumente pro și contra ale ambelor metode de alocare.

Top