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