Ситуация такая: есть Linux-машина с 2 GB RAM. В какой-то момент времени в работающей программе вызов sysconf(_SC_AVPHYS_PAGES) возвращает количество страниц, общий размер которых составляет около 30 MB. На основании этих данный делается попытка резервировать регион адресного пространства так: mmap(NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS, -1, 0) где size == 262144 (256 килобайт). Но этот вызов иногда проваливается! Очевидно (поправьте меня, если я ошибаюсь), фрагментация памяти такова, что система не может выделить последовательность страниц такой длины... А вопрос такой: каким же образом можно понять, что в системе есть достаточное количество свободной физической памяти, которую можно резервировать (как?), не опасаясь ошибки? Или это вообще невозможно? Может быть, есть какой-то приближённый метод? Заранее спасибо!

Ответ на:
комментарий
от Die-Hard

Ответ на:
комментарий
от Die-Hard

Ответ на:
комментарий
от jek_

Ответ на:
комментарий
от jek_

Ответ на:
комментарий
от idle

Ответ на:
комментарий
от jek_

Ответ на:
комментарий
от idle

Ответ на:
комментарий
от jek_


Ответ на:
комментарий
от Murr

Ответ на:
комментарий
от jek_

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как узнать, сколько памяти доступно для выделения? (2005)
- Форум Не понимаю с mmap.. (2005)
- Форум Изменения пределов user-space памяти в ядре 2.6.8 (или 2.6.6/2.6.7) (2004)
- Форум Некий прокси сервер. Проблема с пересылкой пакетов. Lua (2020)
- Форум Консольный plantuml не создаёт диаграммы из json. (2021)
- Форум Помогите с gdb (2013)
- Форум доступная память (2006)
- Форум mmap() освободить физическую память. (2012)
- Форум Доступная память для процесса (2010)
- Форум как выделить физическую не виртуальную память? (2005)