Probabilmente non vuoi evitare che macOS sospenda le app quando il sistema esaurisce la RAM quando sai che l'unica alternativa è uccidere il programma. Cioè interrompere l'esecuzione del programma ora e qui senza salvare i suoi dati o qualcosa del genere.
Tuttavia, non è necessario riavviare i programmi messi in pausa come in "chiudere il programma e avviarlo". Invece, è possibile riattivare il programma quando si dispone di sufficiente memoria libera sul sistema. Puoi farlo dal terminale eseguendo:
kill -CONT <pid>
dove dovrebbe essere sostituito con l'ID del processo del processo, si desidera annullare la pausa.
Puoi trovare l'ID di processo usando Activity Monitor o il comando "ps" nel Terminale (in questo caso, cerca i processi con lo stato T poiché sono quelli in pausa / fermati).
Un modo semplice per non pubblicare e trovare l'ID in una volta sola è:
kill -CONT 'pgrep myprogram'
dove myprogram è il nome del programma che si desidera annullare la pausa.
La seconda parte della domanda in cui descrivi lo scenario ideale è molto difficile da realizzare con un programma standard. In generale i programmi possono richiedere la memoria dal sistema operativo, ma il sistema operativo non può richiederlo in seguito. È possibile, ma richiede programmi molto specializzati che in genere non è il caso.
Questo significa che una volta che macOS ha concesso il tuo programma per esempio 1 GB di RAM, il sistema operativo non può semplicemente riprenderlo quando altri programmi richiedono più memoria. Se togli la memoria da programmi non appositamente predisposti per permetterlo, si bloccheranno effettivamente non appena tenteranno di utilizzare la memoria perduta.