Помаленьку 4.4bsd начинает оживать. Пытаюсь отловить утечку памяти в ядре, и наблюдаю забавный эффект. Есть два системных процесса, отвечающих за память: демон подкачки (swapper) и демон откачки (pagedaemon). Демон откачки старается поддерживать в ядре определенное количество пустых страниц памяти. Когда он не справляется и страниц становится критически мало, он решает откачать один из процессов целиком на диск, в область свопа. Первыми уходят спящие процессы типа init. Если памяти все еще недостаточно, наступает черед активных процессов. В какой-то момент в своп улетает единственный активный процесс - консольный шелл, и система фактически останавливается. Секунд через десять демон подкачки решает, что пора подкачать шелл обратно, и система оживает.
Это не ошибка, а фича, описанная в книжке Кирка Маккузика. Интересно, что в FreeBSD это место поправили, чтобы ядро никогда не выталкивало активные процессы в своп. Вместо этого самый большой и толстый процесс пришибается сигналом. Я склоняюсь к тому, что для встроенных систем это решение подходит лучше.
Это не ошибка, а фича, описанная в книжке Кирка Маккузика. Интересно, что в FreeBSD это место поправили, чтобы ядро никогда не выталкивало активные процессы в своп. Вместо этого самый большой и толстый процесс пришибается сигналом. Я склоняюсь к тому, что для встроенных систем это решение подходит лучше.