Memória tömítés - stadopedia

A memória fragmentáció problémájának megoldására a rendszerben különböző tömörítési algoritmusok valósíthatók meg. A tömítés lehet részleges vagy teljes. Ha a memória részben lezárva van, az aktív blokkokat nem lehet eltolni, így a tömörítést csak a szomszédos szabad tömbök kombinálásával lehet végrehajtani. A teljes tömörítést úgy hajtják végre, hogy az aktív elemeket eltolják a köztük kialakított "ablakok".







A tömörítési algoritmus időtartamára a számításokat felfüggesztik.

A Compaction_Pointeret jelöli a heap elem tömörítési mutatója, és a méret a heap elem nagysága. Elvégzésére tömörítő algoritmus is igényel két munkanapon mutató: P - a mutatót, hogy mozoghat a halom, Q - tömítő jelenlegi mutató.







tömörítő algoritmus négy szakaszra osztott, amelyek közül az első - lépésben címkézés - végre ugyanolyan módon, mint a szemétgyűjtő (elemek Heap nézett Láncelemek kezdődő külső mutatók), így rendszerek, amelyek lehetővé teszik a megjelenése a szemetet, a szemétgyűjtő eljárást kombináljuk a tömörítési algoritmus végrehajtásával.

Az algoritmus második lépése a tömítési mutatók telepítése. A műveletet úgy végzik el, hogy egymás után átkerülnek az összes tömbelemre, az első mondattól kezdve az alábbi szabályok szerint:

¨ Kezdetben a P és Q mutatók a halom elejére vannak állítva;

Sorozatos átjutás a halom elemei között:>

míg a P nem ment túl a halomon

Kezdje el a pecsét index>

A leírt algoritmus lehetővé teszi a szemétgyűjtést a memória fragmentálása nélkül ugyanazon a területen, ahol az aktív cellák abban a pillanatban helyezkednek el.




Kapcsolódó cikkek