Ситуация такая: есть 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)