Xvesa

Нет, это суммарная память. Память самого процесса и общих библиотек.
YuriMann
Нет, это суммарная память. Память самого процесса и общих библиотек.
Это суммарная виртуальная память, выданная процессу ядром. Сюда входят отображаемые в память файлы и устройства, память, занятая самим процессом и разделяемые библиотеки. К занимаемому в физической памяти объему эта цифра не имеет никакого отношения.
128Mb RAM, 128Mb видеопамяти. По-моему комментарии излишни. Ну или объясните мне как один лишь X сервер занимает (по вашей версии) больше физического объема памяти.
[[email protected] ~]# free
             total       used       free     shared    buffers     cached
Mem:        123196     120656       2540          0          0      76416
-/+ buffers/cache:      44240      78956
Swap:            0          0          0
[[email protected] ~]# ps -A | grep X
 1684 tty7     00:00:02 X
[[email protected] ~]# pmap -d 1684 | grep mapped
mapped: 153476K    writeable/private: 10196K    shared: 133064K
Нашел на просторах интернета:
mapped: общее количество памяти, отведенного под файлы
writeable/private: общее количество приватного адресного пространства
shared: общее количество адресного пространства, которое данный процесс использует совместно другими процессами

Для сравнения openbox (с флешки)
# pmap -d `pidof X` | tail -1
mapped: 40488K    writeable/private: 13964K    shared: 16832K
Как видете не такие уж большие цифры при тех же параметрах компьютера (видео 512МБт, оперативки 2ГБт), что не увязывается с результатами, полученными на виртуальной машине.
YuriMann
видео 512МБт
Дайте угадаю, нвидия с проприетарными драйверами? Ее драйвера не пытаются адресовать всю видеопамять сразу, а открытые драйвера xorg - очень даже. К тому-же вы мне так и не объяснили почему занимаемый (по вашей версии) объем памяти одним лишь процессом больше физического объема памяти.
И почитайте, наконец, про mmap, пожалуйста. Хотя-бы вот тут: http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0_%D0%BD%D0%B0_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C.
Я даже процитирую:
при использовании отображений операционная система не загружает в память сразу весь файл, а делает это по мере необходимости, блоками размером со страницу памяти (как правило 4 килобайта). Таким образом, даже имея, небольшое количество физической памяти (например 32 мегабайта) можно легко отобразить файл, размером 100 мегабайт или больше
Дайте угадаю, нвидия с проприетарными драйверами?
Radeon с последним каталистом.
Openbox с vesa.

объем памяти одним лишь процессом больше физического объема памяти
Проверьте на живой системе.

И почитайте, наконец, про mmap, пожалуйста. Хотя-бы вот тут:
Ссылка не по теме. Разговор о разделяемой памяти.
YuriMann
Проверьте на живой системе.
А чем виртуалка недостаточно живая система? Хорошо, завтра на работе буду - того же линуха запущу на реальной машине со 128Мб RAM и 128Мб видео, не составит проблемы.

YuriMann
И почитайте, наконец, про mmap, пожалуйста. Хотя-бы вот тут:
Ссылка не по теме. Разговор о разделяемой памяти.
Разговор о памяти, занимаемой процессом. Разве нет? Вы не понимаете специфики выделения виртуального диапазона адресов процессу (в данном случае ядром линукса) и пытаетесь мне доказать, что выделенный диапазон адресов равен размеру, занимаемому процессом в физической памяти. Это не так. Как пример механизма, реализующего несоответствие, которое вы никак не можете понять, я привел mmap - механизм, отображающий в виртуальный диапазон адресов процесса файлы и/или устройства без занятия всего объема памяти, который требуется. Именно его показывает pmap в строке “mapped” - это виртуальный диапазон адресов, выделенный процессу ядром. Он может быть до 4Гб на 32 битной системе, вне зависимости от физического объема памяти. Реальный объем, занимаемый только процессом, отображен в строке “writeable/private” - это его “личная” память, объем разделяемой памяти (которая тоже может быть mapped, никто не обещал, что это реальная память) в строке shared.
Опять двадцать пять.
writeable/private: общее количество приватного адресного пространства
shared: общее количество адресного пространства, которое данный процесс использует совместно другими процессами
shared и есть “разделяемая память”. А ваша ссылка - совершенно другая песня.
YuriMann
shared и есть “разделяемая память”. А ваша ссылка - совершенно другая песня.
Вы путаете (и даже смешиваете в одно, если я не ошибаюсь) разделяемую память (shared) и виртуальный диапазон адресов (mapped), выделяемый процессу ядром. Процесс имеет диапазон адресов, границы которого показывает pmap, в этот диапазон адресов входит память, занимаемая структурами самого процесса (физическая, приватная, показана в “writeable/private”), адреса, отображенные на файлы и/или устройства, и разделяемую память (та самая “shared”, к которой имеют или могут иметь доступ сразу несколько процессов), которая, в свою очередь, может быть реально выделенной памятью (разделяемые библиотеки, например) и/или отображенными в виртуальную область памяти файлами и/или устройствами. Вы вообще путаете физическую память и виртуальный диапазон адресов поцесса(ов). Почитайте про управление памятью в современных операционных системах.
 
Зарегистрироваться или войдите чтобы оставить сообщение.