Diagramă de comparație
Bazați-vă pe comparație | Alocarea contiguă a memoriei | Alocarea necondiționată a memoriei |
---|---|---|
De bază | Alocă blocuri consecutive de memorie unui proces. | Alocă blocuri separate de memorie unui proces. |
Cheltuieli generale | Alocarea 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ție | Un proces execută fatser în alocarea de memorie contiguă | Un proces se execută relativ mai lent comparativ în alocarea necondiționată a memoriei. |
Soluţie | Spaț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. |
Masa | Un tabel este menținut de sistemul de operare care menține lista de partiții disponibile și ocupate în spațiul de memorie | Trebuie 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.
Î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ă
- 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ă .
- Î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.
- Procesul stocat în memoria contiguă se execută mai repede în comparație cu procesul stocat în spațiul de memorie necontenit.
- 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.
- Î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.