віртуальний адресний простір та фізична ОЗП


0

У Ubuntu, дивлячись на meminfo, я помічаю, що загальна кількість віртуального адресного простору набагато більша, ніж загальна фізична операційна потужність:

/proc $ cat meminfo
MemTotal:        6113156 kB
...
VmallocTotal:   34359738367 kB

Я думав, що віртуальний адресний простір безпосередньо відображається в адресний простір RAM. То як це могло бути набагато більшим?

Відповіді:


0

Процесор підтримує віртуальну сторінку до фізичного відображення сторінки. Це правда.

Оскільки трапляється виняток (тобто називається ядро), коли процес намагається отримати доступ до пам'яті на сторінці, яка не повинна, ядро ​​може скористатися цим фактом, щоб перейти на сторінку, що зберігається на диску, а потім відновити процес, де він залишено, замість того, щоб просто здійснити процес.

Таким чином, ви можете мати свопфайл, який містить сторінки, які фактично були повністю замінені оперативною пам’яттю і не працюють в оперативній пам’яті. Це насправді не є частиною апаратного дизайну MMU, але воно включає ядро, яке фізично робить своп за лаштунками процесу простору користувачів.


Але подивіться, наскільки це велике число: 34359738367. Це 32767 гігабайт пам'яті саме там. Я навіть не думаю, що машина має стільки концертів на диску, не кажучи вже про концерти, зарезервовані для розміщення місця на диску.
ДжонМерліно

Я думаю, що такі речі mmap- які деякі програми використовують для читання файлів, і в основному операційна система робить файл схожим на пам'ять і обмінюється бітами на вимогу - може попросити ядро ​​виділити адреси віртуальної пам'яті, навіть якщо вони виграли ' t ніколи не використовувався для обміну процесами. У вас велика база даних, що працює в цій системі? Я також чув, що ZFS використовує багато віртуального адресного простору, якщо ви випадково використовуєте його на FreeBSD або подібному.
LawrenceC

Я використовую Ubuntu 12.04. У мене в цій системі встановлені apache2, пасажир phusion, рубін на рейках, рубіновий демон, сервер redis, сервер juggernaut. У мене встановлена ​​клієнтська програма mysql, але сама база даних знаходиться на іншій машині. На цій машині немає баз даних.
ДжонМерліно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.