In che modo "bloccato" (nei risultati di "top") si riferisce a "non rispondere" (in Activity Monitor), "spin" o "hang"?

15

Nei risultati dei comandi top , a volte vedo bloccato .

di Apple (1) Pagina del manuale di OS X non spiega questo uso della parola.

In che modo, se è tutto, bloccato si riferisce a quanto segue?

  1. non risponde - può essere visto in Activity Monitor, nella finestra di dialogo Forza chiusura applicazioni della finestra di login, e così via
  2. .hang file - può essere presente a /Library/Logs/DiagnosticReports
  3. .spin file - può essere presente a /Library/Logs/DiagnosticReports

C'è una risposta accettata per il primo punto. Le risposte relative ai punti 2 e 3 saranno apprezzate.

    
posta Graham Perrin 31.07.2012 - 15:14
fonte

2 risposte

14

Di solito non c'è alcuna correlazione tra un processo bloccato di top e un'applicazione non rispondente:

  • bloccato significa che il processo è attualmente non interrompibile, che di solito è il caso se il processo è in attesa di lettura di un disco o di un blocco dati di rete (o altro materiale di basso livello simile). Tecnicamente parlando il processo è in esecuzione nello spazio del kernel (noto anche come kernel Unix) e non può essere interrotto (quindi anche un kill -9 non avrebbe alcun impatto). Di solito questi bloccati indicano solo gli ultimi millisecondi (come si può vedere anche in top perché il numero di processi bloccati cambia ad ogni ciclo di visualizzazione).
  • le applicazioni non rispondenti possono essere troppo impegnate a rispondere a qualsiasi evento che OS X lancia su di loro.

Vedo una situazione in cui un processo bloccato corrisponde a un'applicazione non rispondente: un processo può essere bloccato per un tempo molto lungo, forse bloccato all'infinito, senza alcuna possibilità di ucciderlo. Questo di solito è il risultato di un errore di programmazione, ad es. disconnessione impropria da un dispositivo in rete, quindi il kernel continua a cercare di leggerlo. In casi come questo anche una terminazione forzata non rimuoverà il processo.

    
risposta data 31.07.2012 - 17:41
fonte
1

Stato del processo U, TH_STATE_UNINTERRUPTIBLE e stato del processo Linux D

Qualcun altro ha attirato l'attenzione su MacOS in alto: "bloccato" significa "non interrompibile" "| nelsonslog

… TH_STATE_UNINTERRUPTIBLE, which I believe is what ps reports as process state “U”. I’m guessing this is what Linux calls “D” for “Device Wait”. In which case, in most cases the process is fine, it’s waiting for some I/O to complete. …

La pagina man di Ubuntu per ps conferma un codice di stato del processo -

D    Uninterruptible sleep (usually IO)

- senza altra menzione di uninterruptible .

In FreeBSD / Linux Linux Kernel Cross Reference:

Ho trovato una discussione del 2002 La risposta 83: Come uccidere un processo in stato di sospensione ininterrotta? ( mette in evidenza ) che si adatta bene alle osservazioni fatte da @patrix.

Ultimo ma non meno importante, un post del 2004 [X-Unix] PS e processi bloccati ( mette in evidenza ) menzionando WindowServer , che si adatta bene con - domanda correlata che mi ha spinto a postare la domanda qui:

risposta data 31.07.2012 - 21:31
fonte

Leggi altre domande sui tag