LINUX.ORG.RU

Почему ядро не может высвободить ресурсы?

 ,


0

1

Есть подвисания программ, которые нельзя убить

kill -9 some

Они остаются зависшими. В процессах сидят как

defunc some

При этом вся система нормально функционирует. И с этим defunс система может работать неграниченное кол-во времени

Вопрос! Почему ядро не может высвободить ресурсы в userspace(ring3) программы? Я понимаю, если бы сама программа была связана с какими-то датчиками внешними, которые не отвечают и ядро внутри себя в каких-то драйверах повесилось, но тут какая-то хреновина консольная, которая вообще ни с чем не связана и она становится зомби. Но(!) даже если связана, это что, нельзя корректно обработать? Я считаю, что это бага, которая уже лет 30 живет в ядре

Вот вчера завис ff, не убивался. Иксы перезапустить невозможно. Ребутаться не хочет. Вопрос решается только кнопкой reset. Windows95 воочию!

★★★

Последнее исправление: serg002 (всего исправлений: 2)
Ответ на: комментарий от Jameson

Судя по всему произошла путаница понятий. Обращение к Википедии, показывает что зомби-процесс это только пустая запись в таблице процессов, хранящая запись о статусе завершения уже оконченного процесса, для его родителя. Поскольку процесс, запись о котором ещё существует, на самом деле завершён, то ресурсы которые занимал этот процесс, уже освобождены, осталась только запись в списке процессов. Однако, наряду с понятием процесса-зомби, существует понятие процесса-сироты. Процесс-сирота это реально существующий, живой процесс, потребляющий ресурсы, родитель которого был завершён до завершения дочернего процесса. Родителем таких процессов, по завершению запустившего их родительского процесса, назначается процесс init (в моём случае systemd). В отличие от зомби, процесс-сирота хоть и потребляет ресурсы, однако вполне убиваем.

Породить процесс-сироту достаточно несложно:

bash
cat /dev/zero > /dev/null &
exit

Убивается такой процесс тоже легко:

kill -s SIGTERM <pid_порождённого_процесса>
QsUPt7S ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.