THRAK a écrit :
Savoir s'il existait des outils s'exécutant au niveau de l'espace utilisateur et permettant d'interagir sur le comportement des processus. Je verrai une utilité à cela pour pouvoir gérer soi-même certains processus dans le cadre d'une utilisation SMP par exemple ; il peut être intéressant de pouvoir attribuer manuellement des processus par CPU. Ainsi. tu pourrais réserver l'utilisation d'un processeur à une tâche précise, etc.
|
Ce type de chose existe au moins pour les architectures NUMA (on revient à mon post du début) : pour ce type d'architecture, il est essentiel de pouvoir contrôler la localisation des processus (lourds et légers) pour éviter au maximum la délocalisation de la mémoire après un changement de contexte. Aux dernières nouvelles (mais c'est à confirmer), aucun ordonnanceur n'est capable de déterminer efficacement le processus le plus adapté à un processeur donné. Pour pallier ce problème, on a donné à l'utilisateur la possibilité de fixer lui même le(s) processeur(s) sur lesquels il veut voir s'exécuter un processus. Une API numa a été définie pour le noyau, et s'accompagne de la bibliothèque C correspondante libnuma, ainsi que de l'outil numactl.
La question est de savoir si cette API est bien implémentée dans le noyau, et si ce type d'outils est aussi utilisable pour des architectures multi-processeurs à accès mémoire uniforme (ce qui pourrait être bien pratique comme THRAK le suggère).
Je n'ai pas trop le temps de chercher de la doc à ce sujet en ce moment, mais je le ferai sans doute un jour et je vous tiendrai au courant.
---------------
TriScale innov