Atât clasificarea internă, cât și cea externă afectează viteza de acces a datelor la sistem. Ele au o diferență de bază între ele, adică fragmentarea internă apare atunci când blocurile de memorie cu dimensiuni fixe sunt alocate procesului fără a se referi la mărimea procesului și fragmentarea externă are loc atunci când procesele sunt alocate dinamic dinamic. Să mergem mai departe și să discutăm diferențele, motivele, soluțiile din spatele fragmentării interne și externe, cu ajutorul graficului de comparație prezentat mai jos.
Diagramă de comparație
Bazele comparației | Fragmentarea internă | Fragmentarea externă |
---|---|---|
De bază | Apare atunci când blocurile de memorie cu dimensiuni fixe sunt alocate proceselor. | Apare atunci când spațiul de memorie cu dimensiuni variabile este alocat proceselor în mod dinamic. |
Apariţie | Când memoria atribuită procesului este puțin mai mare decât memoria solicitată de proces, aceasta creează spațiu liber în blocul alocat, cauzând fragmentarea internă. | Când procesul este eliminat din memorie, acesta creează spațiul liber din memorie cauzând fragmentarea externă. |
Soluţie | Memoria trebuie să fie împărțită în blocuri cu dimensiuni variabile și să se atribuie cel mai potrivit bloc proceselor. | Compactare, paging și segmentare. |
Definiția fragmentării interne
Fragmentarea internă apare atunci când memoria este împărțită în blocuri de dimensiuni fixe . Ori de câte ori o cerere de proces pentru memorie, blocul de dimensiuni fixe este alocat procesului. În cazul în care memoria atribuită procesului este ceva mai mare decât memoria solicitată, atunci diferența dintre memoria atribuită și cea solicitată este fragmentarea internă .
Acest spațiu rămas din interiorul blocului de dimensiuni fixe nu poate fi alocat nici unui proces deoarece nu ar fi suficient pentru a satisface cererea de memorie prin proces. Să înțelegem fragmentarea internă cu ajutorul unui exemplu. Spațiul de memorie este împărțit în blocurile de dimensiuni fixe de 18.464 octeți. Să presupunem că o cerere de proces pentru 18.460 octeți și un bloc de dimensiuni fixe împărțite de 18.464 octeți este alocată procesului. Rezultatul este 4 octeți de 18.464 octeți rămase goale, ceea ce reprezintă fragmentarea internă.
Supravegherea de a urmări gaura internă creată din cauza fragmentării interne este substanțial mai mare decât numărul găurilor interne. Problema fragmentării interne poate fi rezolvată prin împărțirea memoriei în blocul cu dimensiuni variabile și alocarea blocului de cea mai bună dimensiune unui proces care solicită memoria. Totuși, nu va elimina în totalitate problema fragmentării interne, ci o va reduce într-o oarecare măsură.
Definiția fragmentării externe
Fragmentarea exterioară apare atunci când există o cantitate suficientă de spațiu în memorie pentru a satisface cererea de memorie a unui proces. Dar cererea de memorie a procesului nu poate fi satisfăcută deoarece memoria disponibilă este într-o manieră non-contiguă. Fie că aplici strategia de alocare a memoriei în primul rând sau cel mai potrivit, aceasta va provoca fragmentarea externă.
Când un proces este încărcat și scos din memorie, spațiul liber creează gaura din spațiul de memorie și există multe astfel de găuri în spațiul de memorie, aceasta se numește fragmentare externă. Deși prima potrivire și cea mai bună potrivire poate afecta cantitatea de fragmentare externă, ea nu poate fi complet eliminată. Compactarea poate fi soluția pentru fragmentarea externă.
Algoritmul de compactare împușcă tot conținutul memoriei pe o parte și eliberează un bloc mare de memorie. Dar algoritmul de compactare este costisitor. Există o soluție alternativă pentru a rezolva problema fragmentării externe, care va permite unui proces să achiziționeze memoria fizică într-o manieră non-contiguă. Tehnicile pentru a realiza această soluție sunt paginarea și segmentarea.
Diferențele cheie între fragmentarea internă și cea externă
- Motivul principal al apariției fragmentării interne și externe constă în fragmentarea internă atunci când memoria este împărțită în blocuri de dimensiuni fixe, în timp ce fragmentarea externă apare atunci când memoria este împărțită în blocuri de dimensiuni variabile .
- Când blocul de memorie alocat procesului este puțin mai mare decât memoria solicitată, atunci spațiul liber lăsat în blocul de memorie alocat provoacă fragmentarea internă. Pe de altă parte, atunci când procesul este eliminat din memorie, acesta creează spațiu liber, provocând o gaură în memorie, numită fragmentare externă.
- Problema fragmentării interne poate fi rezolvată prin împărțirea memoriei în blocuri cu dimensiuni variabile și atribuirea celui mai potrivit bloc la procesul solicitant. Cu toate acestea, soluția pentru fragmentarea externă este compactarea, dar este costisitor de implementat, astfel încât procesele trebuie să aibă posibilitatea de a dobândi memoria fizică într-o manieră neîntreruptă, pentru a realiza acest lucru este introdusă tehnica paginării și segmentării.
Concluzie:
Problema fragmentării interne poate fi redusă, dar nu poate fi complet eliminată. Ajutorul de paginare și de segmentare ajută la utilizarea spațiului eliberat din cauza fragmentării externe, permițând unui proces să ocupe memoria într-o manieră non-contiguă.