On 12/9/15, Max Dmitrichenko <dmitr...@gmail.com> wrote: >> Все несколько сложнее чем кажется на первый взгляд, но сообщения о >> нехватке >> памяти может быть получено когда память есть, но не та которая нужна >> приложению - в данном случае java попросила 1 страницу 8к, и их не >> оказалось, а вот страниц 4к, 16к и т.д. вполне могло быть в достатке. > > Это какие новости операционно-системо-строения. С какого это рожна > приложению не всё равно какая там память? Приложение оперирует > виртуальными адресами и две соседние по виртуальным адресам страницы > памяти могут лежат в противоположных уголках физической. И ничего > приложение про это не узнает. Поэтому если у ядра есть две странички > по 4К, выделить их приложению и промапить их на подрядидущие адреса не > составляет никакого труда. Если подходящий свободный диапазон > виртуальных адресов есть в пространстве процесса. > > Кроме того, не знаю о какой архитектуре идет речь, но на x86 все > страницы, кроме huge, 4k. Поэтому не понятно, о каких страницах по 16К > вы тут пишите.
О buddy-аллокаторе разговор, у него разные страницы, видимо, не совсем правильно называть их страницами.