next up previous contents
Next: Hash Up: Date Previous: Asignari   Cuprins

Colectarea reziduurilor

Toata memoria dinamica in timpul executiei unui program plint este gestionata prin numere de referinte. Pornind de la variabilele statice numite contextul programului, se poate tine evidenta fiecarui octet de memorie alocat, prin corecta gestionare a zonelor contiguue si inlantuite de memorie. In teoria ``colectoarelor de reziduurui'' variabilele statice constituie setul de baza (root set) de la care pornind, se poate ajunge mai apoi la orice octet dinamic alocat, bine gestionand inlantuirile.

Exista insa un caz capcana care genereaza zone inlantuite in memorie (lanturi) la care nu se mai poate ajunge pornind de la setul de baza, deci nu mai pot fi alocate, ducand la pierde de memorie. plint interpretand succesiv toate fisierele sursa din linia de comanda in cadrul, aceluiasi proces, aceasta poata duce la epuizarea foarte rapida a memoriei.

Cauza care sta la baza aparitiei acestor reziduuri este legata de numarul de referinte ale variabilelor si valorilor functii; deoarece o variabila cu valoare functie poate indirecta printr-un indice spre o alta variabila, nu este obligatoriu ca cele doua variabile sa fie diferite, adica se poate crea o inlantuire in cerc inchis, sau se mai poate spune lant de referinte.


next up previous contents
Next: Hash Up: Date Previous: Asignari   Cuprins
Sebastian Glita 2002-06-19