RSS - это память, к которой недавно обращалась программа aka процесс (без разницы - на чтение или запись). Сюда входят следующие типы памяти:
* Локальная память программы aka anonymous memory. К этой памяти имеет доступ только эта программа.
* Память, общая для нескольких программ aka shared memory. Например, код из shared libs или вся readonly память после fork'а процесса либо какая-нибудь shm память.
* Память, отображенная в адресное пространство программы из файлов aka file-based memory map (mmap). Наиболее распространенный пример - код запущенной программы.
Shared - это память, к которой имеют одновременный доступ несколько программ. Про нее уже рассказано выше. Важно понимать, что в RSS входит не вся shared память, а только та, к которой программа недавно обращалась (читала или записывала).
Virtual - это адресное пространство программы. В теории всем программам на 64-битных операционках доступно до 2^64 байт адресного пространства. На практике это число немного меньше, но все равно превышает терабайт. Размер доступной виртуальной памяти для каждой программы не зависит от реального объема памяти на компе и спокойно может превышать доступную память на компе в тысячи или миллионы раз. Советую вообще не обращать внимания на колонку Virtual, т.к. по ней сложно понять, как обстоят дела с реальным потреблением памяти у программы.
Code - это память с кодом программы. Обычно этот код за`mmap'ливается напрямую из файлов в память программы, как это было сказано в описании RSS. Обычно его размер не превышает размер файла с программой. Может превышать, если программа запакована с помощью какого-нибудь upx.
DataAndStack - это объем локальной (ака анонимной) памяти, про которую уже рассказано в RSS. Тут тоже важно понимать, что RSS может не учитывать всю эту память, если к ней давно не было обращений. Например, если в программе есть "медленная" утечка памяти, через которую медленно выделяется, но не освобождается память, то с течением времени такая выделенная память перестанет считаться в RSS, хотя будет продолжать учитываться в DataAndStack. Т.е. при такой утечке памяти RSS может оставаться на месте, а DataAndStack будет расти.