Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
[NT] Честно говоря, я ни одного живого «зомби» не видел ;-) Хотя… 07.07.03 14:39 Число просмотров: 1363
Автор: HandleX <Александр М.> Статус: The Elderman
|
Бывает у меня такая фигня — после восстановления из hibernate иногда подвисает аудио, и тогда, если какая-то прога попыталась вывести звук, то виснет, прибиваешь её, окна этой проги пропадают, но процесс висит и ничего с ним нельзя сделать. Никак. Потом сама XP при выключении при выключении грязно ругается на этот процесс, говоришь ей, что прибить, и всё — помогает только Reset. Наверное, это и есть «зомби»? Или это хуже? ;-)
|
<operating systems>
|
[NT] Что делать с зомбями? 07.07.03 13:54
Автор: amirul <Serge> Статус: The Elderman
|
Это не те, у которых родитель умер. В терминологии от MS, зомби - это процесс, который уже не работает, но еще имеет описатель процесса. То бишь в SoftICE он отображается как Deleting.
Так вот и в XP Rus и в XP SP1 Rus со стандартным девелоперским софтом, SoftICE Driver Suite 2.6, MSDN, VC6 и т.д. процессы вообще никогда до конца не прибиваются.
Это бы ничего, но по команде proc сайс находит первый попавшийся процесс с нужным именем. Точно также адресного пространства у зомби нет, а addr тоже пытается подключиться к адресному пространству первого попавшегося процесса. Вот и получается, что если при отладке процесс запускался больше раза, то приходится листать proc-ем все процессы и переключаться в addr по адресу. Это конечно работает, но сильно напрягает.
Кто нибудь знает, как избавиться от зомбей. Ну или чего они ждут, в том смысле, что не дает им удалиться полностью?
|
|
[NT] Может, кто-то владеет дескриптором и не освободил его? Они же Reference-counted... 07.07.03 13:59
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| |
[NT] Может и так. Поищу кто может делать референсы на ВСЕ запускаемые процессы 07.07.03 14:13
Автор: amirul <Serge> Статус: The Elderman
|
Хреново только, что дрова тоже могут это делать, а у меня их довольно много. Если б кто на чистой XP-хе поглянул. Тогда б я точно знал, что это появилось уже в результате моей деятельности.
|
| | |
[NT] Честно говоря, я ни одного живого «зомби» не видел ;-) Хотя… 07.07.03 14:39
Автор: HandleX <Александр М.> Статус: The Elderman
|
Бывает у меня такая фигня — после восстановления из hibernate иногда подвисает аудио, и тогда, если какая-то прога попыталась вывести звук, то виснет, прибиваешь её, окна этой проги пропадают, но процесс висит и ничего с ним нельзя сделать. Никак. Потом сама XP при выключении при выключении грязно ругается на этот процесс, говоришь ей, что прибить, и всё — помогает только Reset. Наверное, это и есть «зомби»? Или это хуже? ;-)
|
| | | |
[NT] Хуже :-) 07.07.03 15:00
Автор: amirul <Serge> Статус: The Elderman
|
> Бывает у меня такая фигня — после восстановления из > hibernate иногда подвисает аудио, и тогда, если какая-то > прога попыталась вывести звук, то виснет, прибиваешь её, > окна этой проги пропадают, но процесс висит и ничего с ним > нельзя сделать. Никак. Потом сама XP при выключении при Это нормальное поведение проги, если она залочена в дривере. Например вызвала DeviceIoControl, а дривер возьми и повисни на двойном CriticalRegion-е например, или мутекса какого ожидает. В общем дривер не завершает и не кэнселит IRP, а прога висит. Это свидетельствует о кривом дривере аудио. По крайней мере о кривой обработке IRP_MJ_POWER.
> выключении грязно ругается на этот процесс, говоришь ей, > что прибить, и всё — помогает только Reset. Наверное, это и > есть «зомби»? Или это хуже? ;-) А зомби это нормальное состояние процесса. Каждый процесс на краткий миг становится зомбей и проходит через это. Но в моем случае он зомбей и остается. Из win32 зомбей не видно вообще. Можно увидеть только из дривера при проходе по списку EPROCESS-ов (ну или из сайса, который именно этим и занимается). У зомби нет ничего, кроме этого самого EPROCESS-а. А вот он удалиться не может.
|
| | | |
[NT] Имхо, это хуже. 07.07.03 14:57
Автор: Ktirf <Æ Rusakov> Статус: Elderman
|
Если нельзя прибить процесс вплоть до повисания системы - это значит он вызвал что-то в ядре и там остался. Или я неправ?
|
|
|