mem_res - это количество реальной памяти, занимаемой процессом.
mem_vsize - виртуальной. Оно включает то, что отмаплено, но сейчас не
нужно, и потому в память не подгружено (либо выгружено в своп, либо и
без того известно, откуда взять, либо запрошено, но еще не использовано,
и потому не выдано).
А верно отобразить, насколько я знаю, в архитектуре линукса невозможно.
Потому что есть разделяемые библиотеки и (реже) явно выделенная общая
память разных процессов, и какая страница кем используется, от ядра не
очень-то добьешься.