Supongo que te refieres al uso de la memoria tal y como se muestra en windows vista+, eso es sólo el «workset privado» de la aplicación, que no tiene en cuenta la memoria asignada por el sistema y los binarios mapeados en memoria, como las dependencias DLL que serían parcialmente compartibles por otros procesos.
Si miras en el gestor de tareas en «seleccionar columnas» tienes más opciones de memoria, otro workset, reservas (que son como el overhead del sistema para las asignaciones) y llamado algo así como «memoria virtual» que es el lado opuesto del workset, donde se contabilizan todas las DIRECCIONES que estaban en uso en el programa (memoria que está reservada pero aún no comprometida (utilizada)). Así que la memoria que se comparte físicamente entre los procesos, se contabilizaría allí repetidamente para todos los procesos
En cuanto al uso real de la memoria cuando un sistema se quedó sin memoria en algún momento, también tienes el problema de que alguna memoria que el proceso está utilizando fue intercambiada (al disco, o descartada en el caso de los recursos binarios, ya que ya están en el disco de todos modos), por lo que en tal caso, el valor del workset sería mayor que la memoria física real que el proceso está utilizando…
Así que… el uso de la memoria no es tan simple 🙂