Solaris 11 acpi «кнопка» на Virtualbox

«Сон» - не совсем правильная метафора для этого состояния процесса, если вы не разработчик ядра. «Ожидание» было бы более подходящим описанием. «Сон» в интуитивном смысле ожидания пробуждения называется «Остановлен» и обозначается как Z .

Процесс не ждет, чтобы его разбудил пользователь, он ожидает выполнения определенного условия. Например, он читает данные из файла и ожидает загрузки данных с диска, или он обслуживает сетевое соединение и ожидает входящего пакета, или он приостанавливается на установленное время и ожидает истечения тайм-аута и т. Д. Единственный способ «разбудить» - это сделать так, чтобы условие было выполнено.

Как вы обнаружили, вызов strace -p $ PID (в Linux или эквивалент в других вариантах unix) может сообщить вам, что делает процесс, и в частности, чего он ждет, с низкоуровневой точки зрения. Однако нет никакой гарантии, что это даст вам полезные данные. Фьютекс - это тип блокировки, и, как правило, единственный способ узнать, кто должен снять блокировку, - это точно понимать, что делает программа и как базовые библиотеки используют эту функцию блокировки.

Возможно, программы перестали производить вывод, потому что они перестали получать ввод. Возможно, одна из программ работает, а остальные ее ждут. Возможно, в программе есть ошибка и процессы зашли в тупик. Как бы то ни было, это проблема приложения, а не системы.Не существует универсального способа «пробудить» программу: программа работает нормально. Он может делать не то, что вы хотите, но он делает то, для чего написано.

-1
08.07.2015, 23:07
0 ответов

Теги

Похожие вопросы