El tamaño del conjunto residente de un proceso es la cantidad de memoria que le pertenece y que actualmente está presente (residente) en la RAM (RAM real, no intercambiada o no residente).
Por ejemplo, si un proceso asigna una porción de memoria (digamos 100Mb) y la usa activamente (lee / escribe), su tamaño de conjunto residente será de aproximadamente 100Mb (más gastos generales, el segmento de código, etc.). Si después del proceso deja de usar (pero no libera) esa memoria por un tiempo, el sistema operativo podría optar por intercambiar fragmentos de esa memoria para intercambiar, para dejar espacio para otros procesos (o caché). El tamaño del conjunto residente luego disminuiría en la cantidad que el núcleo intercambió. Si el proceso se activa y comienza a reutilizar esa memoria, el núcleo volvería a cargar los datos del intercambio y el tamaño del conjunto residente volvería a subir.
El ru_maxrss
campo de struct rusage
es la "marca de límite superior" para el tamaño del conjunto residente. Indica el uso máximo de RAM para este proceso (cuando se usa RUSAGE_SELF
).
Puede limitar el tamaño de conjunto residente de un proceso para evitar que una sola aplicación "coma" toda la RAM en su sistema y obligue a otras aplicaciones a intercambiar (o fallar completamente con condiciones de falta de memoria).
ru_maxrss
está en bytes en máquinas mac / BSD.