Si vous saisissez la commande ps aux, vous verrez quelque chose ressemblant � ce qui suit�:
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND root 1 0.1 8.0 1284 536 ? S 07:37 0:04 init [2] root 2 0.0 0.0 0 0 ? SW 07:37 0:00 (kflushd) root 3 0.0 0.0 0 0 ? SW 07:37 0:00 (kupdate) root 4 0.0 0.0 0 0 ? SW 07:37 0:00 (kpiod) root 5 0.0 0.0 0 0 ? SW 07:37 0:00 (kswapd) root 52 0.0 10.7 1552 716 ? S 07:38 0:01 syslogd -m 0 root 54 0.0 7.1 1276 480 ? S 07:38 0:00 klogd root 56 0.3 17.3 2232 1156 1 S 07:38 0:13 -bash root 57 0.0 7.1 1272 480 2 S 07:38 0:01 /sbin/agetty 38400 tt root 64 0.1 7.2 1272 484 S1 S 08:16 0:01 /sbin/agetty -L ttyS1 root 70 0.0 10.6 1472 708 1 R Sep 11 0:01 ps aux |
C'est une liste de processus en cours d'ex�cution sur le syst�me. Les informations proviennent du syst�me de fichiers /proc que j'ai mentionn� dans la section pr�c�dente. Remarquez que init est le processus num�ro un. Les processus 2, 3, 4 et 5 sont kflushd, kupdate, kpiod et kswapd. Il y a quand m�me quelque chose d'�trange�: dans les deux colonnes de la taille virtuelle de stockage (SIZE) et la taille r�elle de stockage (Real Storage Size, RSS), ces processus renvoient z�ro. Comment un processus peut-il ne pas utiliser de m�moire�?
Il s'agit des d�mons propres au noyau. La majeure partie du noyau n'appara�t m�me pas dans la liste des processus, et le seul moyen de conna�tre la m�moire qu'il utilise est de soustraire la m�moire disponible � la quantit� totale de m�moire install�e. Les d�mons du noyau sont d�marr�s apr�s init, et obtiennent de ce fait des num�ros de processus normaux, mais leur code et leurs donn�es n'existent qu'au sein de la zone de m�moire occup�e par le noyau.
Les noms des d�mons du noyau dans la liste sont �crits entre crochets car le syst�me de fichiers /proc ne contient pas d'information sur la ligne de commande utilis�e pour lancer ces processus.
Alors, � quoi servent ces d�mons ? Les versions pr�c�dentes de ce document pr�sentaient ici un appel � contribution, car mes connaissances dans ce domaine sont limit�es. L'explication (partielle) qui suit est une fusion de diff�rentes r�ponses � cet appel, pour lesquelles j'ai une grande reconnaissance. Toutes indications, r�f�rences et corrections sont bienvenues.
Toutes les entr�es et sorties sont effectu�es via des tampons en m�moire, ce qui acc�l�re grandement les choses. Tout ce qu'un programme �crit peut �tre conserv� en m�moire, puis �tre �crit sur le disque par blocs plus grands et plus efficaces. C'est le travail des d�mons kflushd et kupdate.
Tr�s souvent, les processus sont au repos, et ceux qui tournent n'ont pas besoin d'avoir l'int�gralit� de leur code et de leurs donn�es charg�e en m�moire. Cela signifie que l'on peut faire un meilleur usage de notre m�moire vive, en faisait glisser les pages inutilis�es des programmes en cours d'ex�cution vers la ou les partitions d'�change du disque dur. Le transfert des donn�es depuis et vers la m�moire selon les besoins est assur� par kpiod et kswapd. Toutes les secondes environ, kswapd se r�veille et v�rifie la situation de la m�moire, et, si une page devient n�cessaire en m�moire ou que l'on commence � manquer de place, invoque kpiod.
Il peut aussi exister un d�mon kapmd si vous avez activ� la gestion avanc�e de l'�nergie (apm) dans votre noyau.
Le programme update vous permet de configurer kflushd et kswapd. Essayez update -h pour avoir plus d'information.
L'espace d'�change (swap) est mis en service avec swapon et hors service par swapoff. Ce sont les scripts d'initialisation /etc/rc.sysinit ou /etc/rc.d/rc.sysinit qui appellent g�n�ralement swapon, lorsque le syst�me d�marre. J'ai entendu dire que swapoff �tait pratique pour �conomiser l'�nergie des ordinateurs portables.
Faites un update -t, notez les commentaires des derni�res lignes parlant de ��threshold for buffer fratricide�� (seuil fratricides des tampons). Voil� un concept bien intriguant ! Enqu�tez�!
Entrez dans le r�pertoire /proc/sys/vm et faites un cat sur tous les fichiers s'y trouvant. Voyez ce que vous pouvez en tirer.
Le livre ��Le noyau Linux�� du projet de documentation Linux (LDP). Suivre les liens dans la section aller plus loin - le noyau Linux.
Le code source du noyau, si vous �tes courageux ! Le programme source de kswapd se trouve dans linux/mm/vmscan.c, ceux de klushd et kupdate se trouvent eux dans linux/fs/buffer.c.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:22