2010-10-04 5 views

Répondre

19

Un processus dort lorsqu'il est bloqué en attendant quelque chose. Par exemple, il peut avoir appelé read() et attend des données pour arriver à partir d'un flux réseau.

sleep() est en effet une façon d'avoir votre processus de sommeil pendant un certain temps. Dormir est, cependant, l'état normal de tous les processus, sauf les processus fortement liés au calcul. Le sommeil est essentiellement ce qu'un processus fait lorsqu'il ne fait rien d'autre. C'est l'état normal des choses pour la plupart de vos processus à dormir - si c'est pas le cas, cela tend à indiquer que vous avez besoin de plus de puissance CPU.

2

Ce sont des processus qui ne s'exécutent pas sur le CPU maintenant. Ce n'est pas nécessairement une mauvaise chose.

Si vous avez des nombres énormes (10 000 sur un système serveur, par exemple) de processus en veille, la quantité de mémoire utilisée pour les garder peut rendre le système moins efficace pour les processus non endormis.

Sinon, ça va.

La plupart des systèmes de serveurs normaux ont de 100 à 1 000 la plupart du temps; Ce n'est pas un gros problème.

Ce n'est pas parce qu'ils ne font rien pour le moment qu'ils ne le feront pas, très bientôt. Garder en mémoire, prêt, réduit la latence quand ils sont nécessaires.

8

Un processus de sommeil est comme un processus suspendu. Un processus dort quand:

  1. qu'il fait une opération d'E/S (blocage pour E/S)
  2. Lorsque vous commandez dormir par le sommeil()

L'état de n'importe quel processus peut être:

  • Prêt: quand il est prêt pour l'exécution et il est dans la file d'attente en attente de l'appel du processeur avec une priorité spécifiqueDormir: Lorsqu'il était en cours d'exécution et qu'il était bloqué pour une opération d'E/S ou lors de l'exécution de sleep()
  • En cours d'exécution: Lorsque le processeur exécute un processus, il s'exécute.

Etat Signification

  • R Exécutable

  • T Arrêté

  • P attente sur pagein

  • D attente sur I/O

  • S couchage < 20 secondes

  • I IDLE - sommeil> 20 secondes

  • Z Zombie ou défunte

2

Pour aller dans un peu plus en détail ici, l'état S signifie que le processus est en attente sur une minuterie ou un périphérique lent, tandis que l'état D signifie qu'il attend sur un périphérique rapide. Ce qui constitue un périphérique rapide par rapport à un périphérique lent n'est pas très bien défini, mais généralement, tous les périphériques série, réseau et terminal sont des périphériques lents, tandis que les disques sont des périphériques rapides.