Что происходит, когда ОЗУ полностью заполнено и новый процесс хочет работать на встроенном устройстве? - PullRequest
2 голосов
/ 23 января 2012

Мне интересно, что происходит, когда я пытаюсь запустить новый процесс на встроенной плате под управлением Linux без раздела подкачки или файла подкачки. Обычно для Linux на ПК он выгружает страницы из оперативной памяти и, таким образом, освобождает память для нового процесса. Теперь встроенные платы (возьмем, к примеру, любую плату разработки), работающие под Linux без подкачки, хотят запустить новый процесс с полностью заполненной оперативной памятью, как он запускает новый процесс?

Платы будут иметь флэш-память с ограниченным сроком службы, поэтому они не могут часто заменяться, даже если мы реализуем обмен.

Ответы [ 2 ]

6 голосов
/ 23 января 2012

OOM Killer приходит и убивает любой процесс, который, по его мнению, должен быть убит.

Более подробная информация доступна здесь: http://linux -mm.org / OOM_Killer

2 голосов
/ 23 января 2012

Система Android пытается поддерживать процесс приложения как можно дольше, но в конечном итоге необходимо удалить старые процессы, чтобы освободить память для новых или более важных процессов.Чтобы определить, какие процессы оставить, а какие убить, система помещает каждый процесс в «иерархию важности» на основе компонентов, запущенных в процессе, и состояния этих компонентов.Сначала необходимо исключить процессы с наименьшей важностью, а затем процессы с наименьшей важностью и т. Д., Необходимые для восстановления системных ресурсов.

взяты отсюда: http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

im предполагая Android/ Linux это то же самое для вас

...