¿Cómo se relaciona 'atascado' (en los resultados de 'top') con 'no responde' (en el Monitor de actividad), 'spin' o 'hang'?

17

En los resultados de los topcomandos, a veces veo atascado .

La página del manual OS X de Apple (1) no explica este uso de la palabra.

¿Cómo, si todo, se atasca se relaciona con lo siguiente?

  1. no responde : puede verse en el Monitor de actividad, en el cuadro de diálogo Forzar cierre de aplicaciones de la ventana de inicio de sesión, etc.
  2. .hang archivos - pueden estar presentes en /Library/Logs/DiagnosticReports
  3. .spin archivos - pueden estar presentes en /Library/Logs/DiagnosticReports

Hay una respuesta aceptada para el primer punto. Se agradecerán las respuestas relacionadas con los puntos 2 y 3.

Graham Perrin
fuente

Respuestas:

15

Por lo general, no hay correlación entre un proceso atascadotop y una aplicación que no responde:

  • atascado significa que el proceso es actualmente ininterrumpible, lo que generalmente es el caso si el proceso está esperando que se lea un disco o un bloque de datos de red (o cosas similares de bajo nivel). Técnicamente hablando, el proceso se está ejecutando en el espacio del kernel (también conocido como kernel de Unix) y no se puede interrumpir (por lo que incluso un kill -9no tendría ningún impacto). Por lo general, estos estados bloqueados solo duran milisegundos (como puede ver toptambién porque la cantidad de procesos bloqueados cambia con cada ciclo de visualización).
  • las aplicaciones que no responden pueden estar demasiado ocupadas para responder a cualquier evento que OS X les presente.

Veo una situación en la que un proceso atascado corresponde a una aplicación que no responde: un proceso puede estar atascado durante mucho tiempo, tal vez atascado sin fin, sin ninguna posibilidad de matarlo. Esto generalmente es el resultado de algún error de programación, por ejemplo, una desconexión inadecuada de un dispositivo en red y el núcleo sigue intentando leerlo. En casos como este, incluso una terminación forzada no eliminará el proceso.

nohillside
fuente
Gracias: si atascado es sinónimo de ininterrumpible , entonces estoy familiarizado con ese estado. uninterruptiblese ve comúnmente cuando presiono Control-T ( SIGINFO ) mientras se ejecuta fsck_hfsdesde la línea de comandos. Más información SIGINFOen la página del Manual de OS X de termios (4) de Apple .
Graham Perrin
En relación con esta respuesta, una pregunta en Stack Overflow puede ser de interés: cómo identificar el proceso de no respuesta mediante programación .
Graham Perrin
2
Eché un vistazo al código fuente de top: ininterrumpible es lo mismo que atascado.
nohillside
Gotcha: aspectos destacados de libtop.c en código abierto para Mac OS X 10.7.4.
Graham Perrin
1

Estado de proceso U, TH_STATE_UNINTERRUPTIBLE y estado de proceso de Linux D

Alguien más llamó la atención sobre MacOS: "atascado" significa "ininterrumpido" | nelsonslog

...  TH_STATE_UNINTERRUPTIBLE, que creo que es lo que psinforma como estado de proceso "U". Supongo que esto es lo que Linux llama "D" para "Device Wait". En cuyo caso, en la mayoría de los casos el proceso está bien, está esperando que se complete alguna E / S. ...

La página del manual de Ubuntu para ps confirma un código de estado del proceso:

D    Uninterruptible sleep (usually IO)

- Sin otra mención de ininterrumpible .

En FreeBSD / Linux Linux Kernel Cross-Reference:

Encontré una discusión de 2002 The Answer Gang 83: ¿Cómo matar un proceso en estado de suspensión ininterrumpida? ( destacados ) que encaja perfectamente con las observaciones hechas por @patrix.

Por último, pero no menos importante, una publicación de 2004 [X-Unix] PS y procesos atascados ( destacados ) que mencionan WindowServer , que encaja muy bien con la pregunta relacionada con el que me llevó a publicar la pregunta aquí:

Graham Perrin
fuente