(echo 'test'; sleep 1) | netcat server 7
Это удерживает вход открытым в течение некоторого времени для задержки окончания netcat
.
Оба варианта используются в зависимости от обстоятельств.
Когда ядру необходимо выделить страницы, а доступных нет (или достигнуты водяные знаки ), оно попытается восстановить страницы из неактивных списков (ищет «Неактивно» в /proc/meminfo
). Восстановление страницы там не обязательно включает обмен:
Убийца OOM вмешивается только тогда, когда вышеперечисленного недостаточно; он выбирает «наихудший» процесс (на основе ряда критериев )и уничтожает его.
Страницы будут подкачиваться до тех пор, пока есть место подкачки. Они возвращаются через прерывания Page Fault.
Если места подкачки нет, раздел ядра создается как процесс, «убийца OOM -», который убивает другие процессы для освобождения памяти.
Вы можете найти идеальный ответ от @StephenKitt, который является официально принятым ответом. Но для таких же студентов, как я, которым еще многое предстоит узнать, чтобы понять это на 100%, я хочу сделать это упрощенное приближение ответа на вопрос, основанное на ответе Стивена Китта:
если у нас недостаточно места в оперативной памяти, будет выбрана вытесняемая страница, и эта страница может быть любого из этих типов:
-Страница с не -грязным файлом -. Если мы в этом случае, то страница может быть удалена из памяти (и не скопирована в область подкачки!! ).
-Страница с резервной копией грязного файла -. Если мы в этом случае, то страница может быть удалена из памяти, но не скопирована в область подкачки!! (и его содержимое скопировано в его файл -на резервное место ).
-Нефайловая -резервная страница (независимо от того, грязная она или нет ). Если мы находимся в этом случае, страница должна быть скопирована в область подкачки. Но, если в области подкачки недостаточно места, убийце OOM приходится убивать весь процесс (или несколько из них ).