Seal de memorie - stadopedia

Pentru a rezolva problema fragmentării memoriei în sistem, pot fi implementați diferiți algoritmi de compactare. Sigiliul poate fi parțial sau complet. Când memoria este parțial sigilată, blocurile active nu pot fi deplasate, astfel încât compactarea se face numai prin combinarea blocurilor adiacente libere. Compactizarea completă se realizează prin deplasarea elementelor active pentru a elimina "ferestrele" formate între ele.







Pentru durata algoritmului de compactare, calculele sunt suspendate.

Indicați Compaction_Pointer cu pointerul de compactare al elementului de heap și dimensiunea este dimensiunea elementului de heap. Pentru a executa algoritmul de compactare, vor fi necesare și doi indicatori de lucru: P - indicatorul pentru a se deplasa în jurul elementelor de heap, Q - indicatorul curent de compactare.







Algoritmul de compactare este împărțit în patru etape, dintre care prima - etapa de etichetare - efectuate în același mod ca și în colectarea gunoiului (elemente spuză vizualizate legături cu lanț care încep indicii externe), astfel încât în ​​sisteme care permit apariția gunoiului, procedura de colectare a gunoiului este combinat cu implementarea algoritmului de compactare.

Al doilea pas al algoritmului este instalarea indicatorilor de sigilare. Se execută prin traversarea secvențială a tuturor elementelor de heap, începând cu primul bloc, conform următoarelor reguli:

¨ Inițial, indicatorii P și Q sunt setați la începutul heapului;

Trecerea secvențială prin elementele haldelor:>

P nu a depășit mormanul

începe Instalați indexul de etanșare>

Algoritmul descris permite efectuarea colectării gunoiului fără fragmentarea memoriei în aceeași zonă în care sunt localizate celulele active în acest moment.







Articole similare

Trimiteți-le prietenilor: