22 votes

Quel est le rapport entre "bloqué" (dans les résultats de "top") et "ne répond pas" (dans le moniteur d'activité), "tourne" ou "se bloque" ?

Dans les résultats de top les commandes, je vois parfois coincé .

Apple top(1) OS X Page de manuel n'explique pas cette utilisation du mot.

Comment, si c'est le cas, est-ce que coincé se rapportent aux éléments suivants ?

  1. ne répond pas - peut être vu dans le moniteur d'activité, dans la boîte de dialogue "Forcer la sortie des applications" de la fenêtre de connexion, etc.
  2. .hang peuvent être présents à /Library/Logs/DiagnosticReports
  3. .spin peuvent être présents à /Library/Logs/DiagnosticReports

Il y a une réponse acceptée pour le premier point. Les réponses relatives aux points 2 et 3 seront appréciées.

19voto

nohillside Points 82672

Il n'y a généralement aucune corrélation entre un coincé processus de top et une application qui ne répond pas :

  • coincé signifie que le processus est actuellement ininterrompu, ce qui est généralement le cas si le processus attend la lecture d'un disque ou d'un bloc de données réseau (ou d'autres choses de bas niveau similaires). Techniquement parlant, le processus s'exécute dans l'espace du noyau (alias noyau Unix) et ne peut pas être interrompu (donc même une commande kill -9 n'aurait pas d'impact). Habituellement, ces coincé les états ne durent que quelques millisecondes (comme vous pouvez le voir dans top ainsi que parce que le nombre de coincé change à chaque cycle d'affichage).
  • les demandes qui ne répondent pas peut être trop occupés à répondre à tout événement qu'OS X leur envoie.

Je vois une situation où un coincé correspond à une demande qui ne répond pas : Un processus peut être coincé pendant un temps très long, peut-être bloqué sans fin, sans possibilité de l'arrêter. Ceci est généralement le résultat d'une erreur de programmation, par exemple une déconnexion incorrecte d'un périphérique en réseau, le noyau continuant à essayer de lire à partir de ce périphérique. Dans des cas comme celui-ci, même une terminaison forcée ne supprimera pas le processus.

2voto

Graham Perrin Points 7373

État du processus U, TH_STATE_UNINTERRUPTIBLE et état du processus Linux D

Quelqu'un d'autre a attiré l'attention sur MacOS top : "coincé" signifie "ininterrompu" | nelsonslog

  TH_STATE_UNINTERRUPTIBLE qui, je crois, est ce que ps déclare l'état de processus "U". Je suppose que c'est ce que Linux appelle "D" pour "Device Wait". Dans ce cas, dans la plupart des cas, le processus est bien, il attend que certaines E/S se terminent. 

El Page de manuel Ubuntu pour ps confirme un processus code d'état -

D    Uninterruptible sleep (usually IO)

- sans autre mention de sans interruption .

Dans FreeBSD/Linux Référence croisée du noyau Linux :

J'ai trouvé une discussion en 2002 The Answer Gang 83 : Comment tuer un processus en état de veille ininterrompue ? ( points forts ) qui correspond bien aux observations faites par @patrix.

Dernier point, mais non des moindres, un poste de 2004 [X-Unix] PS et processus bloqués ( points forts ) mentionnant WindowServer ce qui correspond bien à la accrocher -qui m'a incité à poser la question ici :

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X