2010-10-04 14 views

risposta

19

Un processo sta dormendo quando è bloccato, in attesa di qualcosa. Ad esempio, potrebbe aver chiamato read() e sta aspettando che i dati arrivino da un flusso di rete.

sleep() è davvero un modo per far dormire il processo per un po '. Dormire è, tuttavia, lo stato normale di tutti i processi, ma strettamente legati al calcolo: dormire è essenzialmente ciò che fa un processo quando non fa altro. È normale che la maggior parte dei tuoi processi stia dormendo - se questo è non il caso, tende ad indicare che hai bisogno di più potenza della CPU.

2

Sono processi che non funzionano sulla CPU al momento. Ciò non è necessariamente una cattiva cosa.

Se si dispone di numeri enormi (10.000 su un sistema server, ad esempio) di processi che dormono, la quantità di memoria utilizzata per tenerne traccia potrebbe rendere il sistema meno efficiente per i processi non dormienti.

Altrimenti, va bene.

La maggior parte dei sistemi di server normali hanno da 100 a 1000 la maggior parte del tempo; questo non è un grosso problema.

Solo perché non stanno facendo nulla solo ora non significa che non lo faranno, molto presto. Mantenerli in memoria, pronti, riduce la latenza quando sono richiesti.

8

Un processo di sospensione è come un processo sospeso. Un processo dorme quando:

  1. che sta facendo un'operazione di I/O (blocco per I/O)
  2. Quando lo ordinate a dormire dal sonno()

Lo stato di qualsiasi processo può essere:

  • pronto: quando pronto per l'esecuzione e in coda in attesa la chiamata processore con specifico priorità
  • Inattivo: quando era in esecuzione ed è stato bloccato per operazioni I/O o durante l'esecuzione di sleep()
  • In esecuzione: quando il processore esegue un processo, diventa in esecuzione.

Stato Significato

  • R Runnable

  • T fermati

  • P attesa sul pageasset

  • D attesa di I/O

  • S Sleeping < 20 secondi

  • I minimo - letto> 20 secondi

  • Z Zombie o defunta

2

Per andare in un po 'più in dettaglio qui, lo stato S significa che il processo di è in attesa su un timer o su un dispositivo lento, mentre lo stato D significa che è in attesa su un dispositivo veloce.

Ciò che costituisce un dispositivo veloce rispetto a un dispositivo lento non è molto ben definito, ma in generale, tutti i dispositivi seriali, di rete e terminali sono dispositivi lenti, mentre i dischi sono dispositivi veloci.

Problemi correlati