Способ определения «реального» использования памяти процессом, то есть частного грязного RSS?

Инструменты типа "ps" и "сверху"; сообщать о различных видах использования памяти, таких как размер виртуальной машины и размер резидентного набора. Однако ни один из них не является "реальным" использование памяти:

Program code is shared between multiple instances of the same program. Shared library program code is shared between all processes that use that library. Some apps fork off processes and share memory with them (e.g. via shared memory segments). The virtual memory system makes the VM size report pretty much useless. RSS is 0 when a process is swapped out, making it not very useful. Etc etc.

Я обнаружил, что частный грязный RSS, как сообщается в Linux, является наиболее близким к «реальному». использование памяти. Это можно получить, суммируя всеPrivate_Dirty значения в/proc/somepid/smaps.

Однако предоставляют ли другие операционные системы аналогичную функциональность? Если нет, каковы альтернативы? В частности, я заинтересован во FreeBSD и OS X.