[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: почему ядро не сбрасывает кэш?



2 декабря 2015 г., 15:47 пользователь Aleksandr Sytar
<sytar.alex@gmail.com> написал:
>
> Все несколько сложнее чем кажется на первый взгляд, но сообщения о нехватке
> памяти может быть получено когда память есть, но не та которая нужна
> приложению - в данном случае java попросила 1 страницу 8к, и их не
> оказалось, а вот страниц 4к, 16к и т.д. вполне могло быть в достатке.

Это какие новости операционно-системо-строения. С какого это рожна
приложению не всё равно какая там память? Приложение оперирует
виртуальными адресами и две соседние по виртуальным адресам страницы
памяти могут лежат в противоположных уголках физической. И ничего
приложение про это не узнает. Поэтому если у ядра есть две странички
по 4К, выделить их приложению и промапить их на подрядидущие адреса не
составляет никакого труда. Если подходящий свободный диапазон
виртуальных адресов есть в пространстве процесса.

Кроме того, не знаю о какой архитектуре идет речь, но на x86 все
страницы, кроме huge, 4k. Поэтому не понятно, о каких страницах по 16К
вы тут пишите.

-- 
With best regards
  Max Dmitrichenko

Reply to: