Как разделить RAM: половина для Linux, другая половина для приложения

У нас есть система с 1 ГБ памяти. Из этого я хотел бы ограничить только 512 МБ для Linux и хотел бы получить доступ к остальным 512 МБ непосредственно из приложения, которое работает на Linux.

Что предложенное средство состоит в том, чтобы достигнуть этого на 2.6.x?

отношения, Prab

0
задан 01.01.2015, 19:49

4 ответа

Вы запускаете Linux - вся память в Вашей машине, чтобы быть доступными Linux так, чтобы Linux мог дать им Вашей программе.

Если система будет иметь 512 МБ, доступных бесплатно, то она даст его Вашей программе, если не затем она не может.

Существуют дополнительные методы, которые можно использовать, чтобы гарантировать, что 512 МБ заблокированы в поршень (не может быть подкачан к диску), но я подозреваю, что это вне того, что необходимо сделать.

0
ответ дан 27.11.2019, 18:19

Только вещь, о которой я могу думать, имеют Ваше приложение malloc () 512 megs, когда это сначала запускается, и затем подразделите память вручную в рамках программы. И мальчик, о, мальчик настолько уродлив.

0
ответ дан 27.11.2019, 18:19

Я действительно не понимаю вопроса; необходимо будет объяснить цель более ясно.

Linux выделяет свою память приложениям, поэтому если Linux будет иметь память, то это ДАСТ его Вашему приложению.

Если Вы хотите определенно иметь память, ТЕПЕРЬ, Вы должны

  • выделите его (с, например, malloc, или mmap)
  • Коснитесь всех страниц (например, путем записи чего-то в каждую страницу)
  • mlock () это - для проверки это не будет выгружено. Или просто не имейте подкачки настроенной (NB: убирают, поддержанные файлом страницы могут все еще быть отброшены, если подкачка отключена).

При реальной необходимости во всех страницах использование программы, чтобы быть в ядре, используйте mlockall.

0
ответ дан 27.11.2019, 18:19

Выделите 512 МБ анонимное отображение с mmap() и MAP_POPULATE, затем заблокируйте его с mlock().

0
ответ дан 27.11.2019, 18:19

Теги

Похожие вопросы