LINUX.ORG.RU

резервирование памяти


0

0

Можно ли какнить зарезирвировать для программы на Си ++ какоето количество дополнительной памяти? Т.е чтоб если в системе кончилась память, у самой проги (покрайней мере для себя ) было ?

свой аллокатор?

imp ★★
()

а в чём проблема?

jtootf ★★★★★
()

можно.

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

stpg
()
Ответ на: комментарий от MiracleMan

Как гарантировать доступность памяти для произвольного процесса? Иногда заканчивается память и даже по ssh нельзя залогиниться, чтобы убить зажравшийся процесс.

len
()
Ответ на: комментарий от len

>Как гарантировать доступность памяти для произвольного процесса? Иногда заканчивается память и даже по ssh нельзя залогиниться, чтобы убить зажравшийся процесс.

лимиты настроить?

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

Млин, вот умники, выделить, лимиты настроить, аллокатор написать, че только не выдумают...

map mlock! идея простая - выделяешь, потом лочишь --> profit, никто не отберет.

vnovouhov
()
Ответ на: комментарий от vnovouhov

mlock() and mlockall() respectively lock part or all of the calling process’s virtual address space into RAM,
preventing that memory from being paged to the swap area.

Т.е все дела остаются в оперативке, а не сбрасываются в свап ?А если далее по ходу выполнения пытается создается какой-то обькт, но ему не хвататет памяти что делать то?
Вопрос был вобщето такой, нельзяли как-то выделить допустим пару дополнительных метров програаме на будушие расходы? Пока самым подходяшим способом остается, создать какой-то обьект (при запуске проги) а в случае нехватки памяти удалить его? Но тут то весь вопрос, в том что придется создавать какой-то обработчик, и везде вызывать его, а если прога уже написана? Т.е надо заново модефицировать, что слонавато

hello_world
() автор топика
Ответ на: комментарий от hello_world

раздать всем лимиты и своп сделать побольше. В случае проблем на тачку заходить будешь долго, но рано или поздно зайдёшь :).

Может у процесса есть атрибут который позволяет его пометить как unswopable? Тогда ssh и шеллу такие атрибуты проставить и проблема решена.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> Может у процесса есть атрибут который позволяет его пометить как unswopable?

Лемминги разучились читать? Говорю-же - mlock/mlockall!

vnovouhov
()
Ответ на: комментарий от hello_world

> Т.е все дела остаются в оперативке, а не сбрасываются в свап ?А если далее по ходу выполнения пытается создается какой-то обькт, но ему не хвататет памяти что делать то?

Идея такая: при старте - аллокируешь себе пул памяти, и пишешь, да, свой аллокатор, что-бы он умел этот пул цеплять, а потом -- mlockall или mlock только этого пула. Без mlock-а фактически никто не будет выделять память, реальное выделение памяти осущестляется при первом доступе к странице.

vnovouhov
()
Ответ на: комментарий от vnovouhov

> Лемминги разучились читать?

читай пост на который я отвечал пока не поймёшь смысл.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.