Я выделяю большой блок разделяемой памяти, используя shmget во встроенной системе:
shmid = shmget(key, 16777216, IPC_CREAT | 0666)
Система работает под управлением uClinux (2.6.28 Linux Kernel) с использованием Slab allocator.У меня нет MMU на процессоре.
Время от времени при выполнении команды вышеупомянутого shmget я получаю ошибку выделения страницы.Это также происходит, когда у меня заканчивается свободная память, но иногда это происходит, когда у меня достаточно RAA.
Я подозреваю, что виновником является фрагментация, но я не совсем уверен - поэтому мои вопросы таковы: может ли эта ошибка быть вызвана тем, что подсистеме IPC требуется непрерывный физический сегмент 16 Мб для этой процедуры, и он не можетво фрагментарную память, выбрасывая ошибку выделения, или проблема кроется в другом месте?