Як "застряглий" (в результатах "верхній") стосується "не реагує" (у "Моніторі діяльності"), "відкручується" або "висить"?


17

У результатах topкоманд я іноді бачу застряглий .

Найпопулярніша (1) Сторінка керівництва Apple X не пояснює використання цього слова.

Як, якщо все це, застрягла ставиться до наступного?

  1. не відповідає - це може бути помічено в "Моніторі діяльності", у діалоговому вікні "Примусово закрити програми" входу для входу тощо
  2. .hang Файли - можуть бути присутніми на /Library/Logs/DiagnosticReports
  3. .spin Файли - можуть бути присутніми на /Library/Logs/DiagnosticReports

Перший пункт є прийнятою відповіддю. Відповіді, що стосуються пунктів 2 та 3, будуть оцінені вдячністю.

Відповіді:


15

Зазвичай не існує кореляції між застряглим процесом topта невідповідним додатком:

  • "застряг" означає, що процес наразі не переривається, що зазвичай відбувається, якщо процес очікує на зчитування дискового або мережевого блоку даних (або подібних матеріалів низького рівня). Технічно кажучи, процес виконується в просторі ядра (він же ядро ​​Unix) і не може бути перерваний (так що навіть kill -9не матиме жодного впливу). Зазвичай ці застряглі стани лише останні мілісекунди (як ви також бачите top, оскільки кількість застряглих процесів змінюється з кожним циклом відображення).
  • програми, що не відповідають, можуть бути занадто зайняті, щоб відповісти на будь-яку подію, яку ОС X на них кидає.

Я бачу одну ситуацію, коли застряглий процес відповідає додатку, що не реагує: Процес може затримуватися дуже довго, можливо, застряг нескінченно, без можливості вбити його. Зазвичай це результат певної помилки програмування, наприклад, неправильного відключення від мережевого пристрою, тоді ядро ​​продовжує намагатися читати з нього. У таких випадках навіть примусове припинення не видалить процес.


Дякую - якщо застряг синонім неперервного , то я знайомий з цим станом. uninterruptibleзазвичай зустрічається, коли я натискаю клавішу Control-T ( SIGINFO ) під час запуску fsck_hfsз командного рядка. Детальніше про SIGINFOв Apple, termios (4) OS X Керівництво Сторінка .
Грем Перрін

Пов’язане з цією відповіддю, питання в переповнюванні стека може бути цікавим: як визначити, що процес не відповідає програмно .
Грем Перрін

2
Я переглянув вихідний код зверху: безперебійне - те саме, що застряг.
nohillside

Gotcha - основні моменти з libtop.c у відкритому коді для Mac OS X 10.7.4.
Грем Перрін

1

Стан процесу U, TH_STATE_UNINTERRUPTIBLE та стан процесу D D Linux

Хтось ще звернув увагу на верхню частину MacOS: "застряг" означає "безперебійний" | nelsonslog

…  TH_STATE_UNINTERRUPTIBLE, Що я вважаю, це те, що psзвітує як стан “U”. Я здогадуюсь, що це те, що Linux називає "D" для "Device Wait". У цьому випадку в більшості випадків процес є нормальним, він чекає завершення вводу / виводу. …

Сторінка Ubuntu man для ps підтверджує код стану процесу -

D    Uninterruptible sleep (usually IO)

- без жодної іншої згадки про безперебійне .

У посиланнях на ядро ​​FreeBSD / Linux Linux:

Я знайшов дискусію 2002 року Банда відповідей 83: Як вбити процес у режимі безперебійного сну? ( основні моменти ), що гарно вписується в спостереження, зроблені @patrix.

І останнє , але не менш важливо , 2004 поста [X-Unix] PS і встромили процеси ( основні моменти ) , що згадують WindowServer , який чудово вписується з про пов'язаному питанні , що спонукало мене опублікувати питання тут:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.