le kernel "tickless"
Drizzt a abordé légèrement un problème possible dans certains OSes sur la façon que les minuteries internes sont gérées au niveau du kernel.
Il mentionnait que beaucoup de OSes avaient une vulnérabilité en ce sens qu'une application pouvait utiliser tout le temps processeur désiré tout en étant rapporté comme n'en utilisant pas. OSX était protégé par effet secondaire du fait qu'il n'utilisait pas le même type de minuteries : plutôt que d'utiliser les ticks (qui se produisent de façon régulière), il utilisait d'autres minuteries qui étaient modifiables et modifiées en fonction des besoins du système.
Je me souvenais que le kernel Linux était en reconstruction pour devenir "tickless", à la manière de OSX et des OSes en temps réel. Et bien, sachez que cette option est disponible depuis la version 2.6.21. Je vous présente donc ce que j'ai trouvé sur le sujet.
Tout d'abord, comme mentionné, cette option est disponible depuis la version 2.6.21 (je vais d'ailleurs me mettre à jour). Le but était de rendre le système plus économique en mode "idle", c'est-à-dire quand le système ne faisait rien. Pourquoi vérifier s'il y a quelque chose à faire si en bout de compte, aucune application n'a demandée de travailler avant x temps.
Un responsable chez Intel mentionne qu'en ne modifiant que la version du kernel, ils ont été en mesure de diminuer la consommation d'énergie de 15 à 25% en mode "idle". Intéressant pour les portables, non?
L'autre avantage est au niveau de la virtualisation. Si le processeur ne sert pas sous l'OS principal, alors pourquoi faire des vérifications de ce côté. La même chose s'applique pour l'OS virtualisé. Maintenant, mettez les deux ensembles et vous sauverez plusieurs interruptions.
Écrit le: 11/07/2007 @ 13:06
Pour les intéressés, voici un article de Linux-Watch parlant plus en détails des changements apportés.
Au fait, en même temps que la réarchitecture pour un kernel tickless, Linux a vu l'introduction d'un API pour contrôler les minuteries (puisqu'il n'y a plus de tick). Ça permet donc de simplifier la gestion des minuteries à travers les différentes architectures.