Qu'advient-il des demandes à un service qui est arrêté avec SIGSTOP

8

Si vous envoyez un SIGSTOP à un serveur Web, le noyau indique-t-il simplement à la pile réseau de bloquer / mettre en veille toutes les connexions aux prises de ce serveur jusqu'à ce qu'elle se poursuive? Il semble que les valeurs de délai d'expiration du serveur n'ont pas d'importance; il attendra indéfiniment, mais comment?

Les demandes resteront-elles indéfiniment dans le tampon de socket? Et si le serveur Web reçoit des tonnes de demandes? Que se passe-t-il lorsque le tampon de socket se remplit?

Gregg Leventhal
la source

Réponses:

5

Du point de vue de toute partie du système qui n'est pas concernée par l'état et les statistiques du processus, un processus qui est arrêté (c'est-à-dire qui ne sera pas planifié jusqu'à ce qu'il reçoive un SIGCONT) ne se distingue pas d'un processus en cours d'exécution, mais ne répond pas à une requête particulière. Par exemple, la pile réseau fonctionne de la même manière, que le processus soit arrêté ou qu'il fonctionne (en utilisant le temps CPU) mais n'effectue aucun appel système, ou qu'il soit bloqué dans un appel système qui n'est pas débloqué par le réseau d'origine. événement (par exemple en attente de lecture d'un tuyau), etc.

Pendant que le processus est arrêté, il n'y a pas de délai d'attente dans le processus. Il n'y a généralement pas non plus de délai d'expiration dans la pile réseau: le paquet a été reçu par la machine, même s'il n'est pas parvenu à la machine. En ce qui concerne par exemple la transmission TCP, le paquet a été reçu et c'est à l'application de répondre.

Si le tampon du socket se remplit, la pile réseau commencera à supprimer les paquets.

Il n'y a aucune raison pour que le comportement de la pile réseau dépende de l'état du processus. Le processus pourrait sortir de l'état arrêté à tout moment. Il pourrait y avoir plusieurs processus à l'écoute sur un socket, donc toute décision basée sur l'état du processus devrait les prendre tous en compte.

Gilles 'SO- arrête d'être méchant'
la source