Até onde eu sei, isso não é possível. E eu acho que é um problema muito mais complicado de resolver do que parece, se levarmos em conta a complexidade do gerenciamento de memória. Pode até ser difícil descrever claramente o que significa "deixar 50MB de lado".
Mas no Linux, há algo que pode muito bem resolver seu problema muito mais elegante:
O assassino de OOM - out of killer de memória - que toma a decisão de qual processo matar se a memória ficar apertada, e apenas mata-lo.
Muito melhor do que esperar pelo primeiro programa que não verifica o valor de retorno de malloc()
e chrashes.
Existem alguns parâmetros para configurá-lo de acordo com suas necessidades - consulte Como configurar o assassino de falta de memória do Linux .
Parte do que torna isso complicado é que não ajuda a reservar memória para um programa: para fazer qualquer coisa útil, você precisa ser capaz de iniciar outros programas - como kill
.