• [^] # Re: Kernel 2.6 / Gestion du multi-thread

    Posté par . En réponse au journal Kernel 2.6 / Gestion du multi-thread. Évalué à 3.

    C'est (presque) normal: top affiche le main-thread du processus. Celui-ci ne fait rien donc il n'a pas a afficher les temps CPU des autres thread.

    De mon point de vue, c'est top qui n'est pas a jour sur la nouvelle facon de gere les thread sur les kernels 2.6. C'est a top de cumuler les temps CPU des threads.

    En interne, le noyau a toujours une notion de processus. La difference entre le 2.4 le 2.6 est dans le report des activites des processus en userspace. [et de la creation des threads aussi mais c'est pas le propos]. Avec le 2.4, tous les threads etaient presente avec le processus associe dans le noyau. Avec le 2.6, le noyau garde l'information qu'un nouveau "processus" est un thread d'un autre processus et ne le reporte pas en processus independant via /proc. seul le thread principal (le "1er", le papa) est reporte.

    Perso, je trouve pas ca tres propre. D'autres Unix cumulent les ressources des threads pour les presenter en un processus ce qui est plus rationnel (d'ou ce journal d'ailleurs). Linux a delegue la tache de cumul aux outils en userspace. Mais il est possible que je me trompe et que cela soit aussi les outils des autres unix qui font le cumul.

    top rapporta surement les temps CPU des processus dans une prochaine version et non du fil principal [une option pour les afficher serait bienvenue toutefois].

    ps: J'ai regarde ps et il reporte correctement les threads si on lui demande (option -L, -T ou -m a rajouter suivant la nature de la hierachie voulue).

    (desole pour les accents ils veulent pas venir :( )