Cuando mi administrador de tareas (arriba, ps, taskmgr.exe o Finder) dice que un proceso está usando XXX KB de memoria, ¿qué es exactamente lo que cuenta y cómo lo hace? se actualiza?¿Cómo sabe el sistema operativo cuánta memoria está usando mi aplicación? (¿Y por qué no hace la recolección de basura?)
En términos de asignación de memoria, ¿una aplicación escrita en C++ "aparece" diferente a un sistema operativo desde una aplicación que se ejecuta como una máquina virtual (código administrado como .NET o Java)?
Y, por último, si la memoria es tan transparente, ¿por qué la recolección de basura no es una función o servicio proporcionado por el sistema operativo?
Como resultado, lo que estaba muy interesado en hacernos es por qué el sistema operativo no pudo hacer la recolección de basura y el espacio de memoria de desfragmentación - que veo como un paso por encima "simplemente" la asignación de espacio de direcciones de procesos.
¡Estas respuestas ayudan mucho! ¡Gracias!
Las respuestas hasta ahora son geniales: conduce a una pregunta de seguimiento: ¿existe un sistema operativo que proporcione un entorno "administrado", completo con recolección de basura? :) –
Más o menos, hay plataformas que están basadas en "Java" como Blackberry y algunos otros sistemas integrados. Pero no hay ningún sistema operativo de clase de escritorio que ofrezca GC genérico sin la cooperación explícita de aplicaciones. –
Recuerdo haber leído acerca de un proyecto de investigación de Microsoft para un sistema operativo administrado, que supongo que sería uno que proporcionó recolección de basura, voy a ver si puedo encontrar la referencia ... – Martin