Lo más probable es que no quieras evitar que MacOS suspenda las aplicaciones cuando el sistema se queda sin RAM cuando sabes que la única alternativa es eliminar el programa. Es decir. detenga el programa para que no se ejecute ahora y aquí sin guardar sus datos ni nada de eso.
Sin embargo, no es necesario reiniciar los programas que están en pausa como en "cerrar el programa y volver a iniciarlo". En su lugar, puede realmente detener el programa cuando tenga suficiente memoria libre en el sistema. Puedes hacer esto desde la terminal ejecutando:
kill -CONT <pid>
donde debe reemplazarse con el ID de proceso del proceso, que desea deshacer la pausa.
Puede encontrar la ID del proceso utilizando el Monitor de actividad o el comando "ps" en la Terminal (en este caso, busque los procesos con estado T, ya que estos son los que están en pausa / detenidos).
Una forma fácil de no hacer pausa y encontrar la ID de una sola vez es:
kill -CONT 'pgrep myprogram'
donde myprogram es el nombre del programa que quieres recuperar.
La segunda parte de su pregunta donde describe el escenario ideal es muy difícil de lograr con un programa estándar. En general, los programas pueden solicitar memoria del sistema operativo, pero el sistema operativo no puede solicitarla nuevamente después. Es posible, pero requiere programas muy especializados, lo que generalmente no es el caso.
Esto significa que una vez que macOS haya otorgado a su programa, por ejemplo, 1 GB de RAM, el sistema operativo no puede recuperarlo cuando otros programas quieren más memoria. Si le quitas memoria a los programas que no están especialmente diseñados para permitir eso, se bloquearán de manera efectiva tan pronto como intenten usar la memoria perdida.