Kernel Corner : noyau 2.6.28 (partie 2)

Magazine
Marque
GNU/Linux Magazine
Numéro
113
Mois de parution
février 2009


Résumé
De retour pour une nouvelle année florissante, nous vous proposons la suite du tour d'horizon des nouveautés du noyau Linux 2.6.28. Notre itinéraire débute sur un sentier gelé avec la visite de l'antre du container freezer, pour ensuite nous attarder au creux d'une vallée emplie d'un parfum qui embrume l'esprit et améliore ainsi la gestion de notre mémoire virtuelle. Il s'ensuit alors une confusion d'images dans le royaume des rêves où l'ordre règne depuis l'apparition opportune d'une gemme au doux nom de GEM (un gestionnaire de mémoire pour GPU). Elle constitue la pièce maîtresse de la rénovation de ce royaume de chimères (l'infrastructure graphique du noyau), victime de tant de maladresses de par son grand âge. Nous établissons finalement notre bivouac dans cette contrée sauvage remplie d'êtres non moins obscurs que ces seigneurs noirs de l'empire Sith qui laissèrent pour seules marques de leur passage, le désastre et le chaos (visible depuis des tracepoints). Tout cela n'est peut être que duperies, alors que nous errons dans cet havre de paix où notre imaginaire (la virtualisation) se confond à la réalité.

1. Ordonnancement et gestion de tâches

1.1 Un mécanisme pour figer les conteneurs de processus

Un nouveau sous-système qui emploie l'infrastructure des cgroups ou Control Groups (cf. Kernel Corner 101) voit le jour dans cette version 2.6.28. Rappelons que ces cgroups constituent un framework au service des différents gestionnaires de ressources (comme l'ordonnanceur pour la CPU, le gestionnaire de mémoire, etc.) qui permet de regrouper des entités (dans notre cas des processus) en agrégats tout en leur assignant des états particuliers nécessaires au contrôle de leur comportement (comme la limitation de l'utilisation de certaines ressources).

Ce nouveau sous-système s'appuie directement sur l'architecture du Software Suspend swsusp, afin de geler des groupes de processus. Il récupère en fait, les fonctions refrigerator(), freeze_task du fichier kernel/power/process.c, et définit le flag TIF_FREEZE pour toutes les architectures (ce flag s'applique au champ flag de la...

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite