Pokud vím, OOM Killer posílal vždy SIGKILL, nikoliv SIGTERM. Vizte zdroják, mm/oom_kill.c.
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=blob;f=mm/oom_kill.c#l524
do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true);
Kolik potřebujete paměti na obsluhu RW mmap-ovaného souboru? Pokud vím, tak jen tu stránku, se kterou aplikace právě pracuje (plus nějakou paměť kernelu). Pokud není paměť, změny se prostě zapíšou do mapovaného souboru. Jinak při použití mmap() obecně můžete dostat SIGBUS (například při přístupu za konec mapovaného souboru), takže by ho aplikace měla být schopná obsloužit.