Prawdopodobnie nie chcesz uniknąć zawieszania aplikacji przez system MacOS, gdy systemowi zabraknie pamięci RAM, gdy wiesz, że jedyną alternatywą jest zabicie programu. To znaczy. przestań uruchamiać program teraz i tutaj bez zapisywania danych lub czegoś podobnego.
Jednak nie musisz ponownie uruchamiać programów, które są wstrzymane, jak w „zamknij program i uruchom go”. Zamiast tego możesz w rzeczywistości zwolnić program, gdy masz wystarczającą ilość wolnej pamięci w systemie. Możesz to zrobić z terminala, uruchamiając:
kill -CONT <pid>
gdzie należy zastąpić identyfikatorem procesu, który chcesz usunąć.
Identyfikator procesu można znaleźć za pomocą Monitora aktywności lub polecenia „ps” w Terminalu (w tym przypadku należy poszukać procesów ze statusem T, ponieważ są to wstrzymane / zatrzymane).
Łatwym sposobem na odblokowanie i znalezienie identyfikatora za jednym razem jest:
kill -CONT `pgrep myprogram`
gdzie mójprogram jest nazwą programu, który chcesz usunąć.
Druga część pytania, w której opisujesz idealny scenariusz, jest bardzo trudna do zrealizowania za pomocą standardowego programu. Zasadniczo programy mogą żądać pamięci z systemu operacyjnego, ale system operacyjny nie może go później zażądać. Jest to możliwe, ale wymaga bardzo specjalistycznych programów, co zazwyczaj nie ma miejsca.
Oznacza to, że gdy MacOS przyzna programowi, na przykład 1 GB pamięci RAM, system operacyjny nie może go odzyskać, gdy inne programy chcą więcej pamięci. Jeśli usuniesz pamięć z programów, które nie są specjalnie spreparowane, aby to umożliwić, będą skutecznie ulegać awarii, gdy tylko spróbują użyć utraconej pamięci.