> Tech > Au coeur du noyau de Windows 2000

Au coeur du noyau de Windows 2000

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

Microsoft a déclaré que Windows 2000 est la plus importante mise à  niveau de toute son histoire. Windows NT 4.0 est sorti mi-1996, et pour créer la nouvelle version Windows 2000, Microsoft a bénéficié de l'expérience des utilisateurs et de sa propre étude du système d'exploitation pendant trois années. Je voudrais dissiper le mythe selon lequel le kernel de Windows 2000 est une simple réécriture de celui de NT 4.0. Il s'agit, en réalité, d'une version tunée et peaufinée du noyau de NT 4.0, comportant certaines améliorations significatives de zones particulières et deux nouveaux sous-systèmes. Avec ces modifications, Microsoft a voulu améliorer l'évolutivité, la fiabilité et la sécurité du système d'exploitation par rapport à  NT 4.0, et permettre le support de nouvelles fonctions telles que Plug and Play (PnP) et la gestion de l'alimentation.
Dans cet article, je fais rapidement le tour des changements apportés au kernel dans Windows 2000. Je ne parle pas des composants Windows 2000 du mode utilisateur, comme Active Directory (AD) ou les interfaces d'administration, qui ne tirent pas parti des changements du kernel pour leur implémentation. Je n'ai pas suffisamment d'espace pour décrire une fonction particulière en détail, mais vous pouvez consulter d'autres articles spécifiquement consacrés aux fonctions internes de NT.

NT 4.0 a la réputation de ne pas supporter suffisamment les montées en charge sur les machines SMP, en particulier à  plus de quatre CPU

Au coeur du noyau de Windows 2000

NT 4.0 a la réputation de ne pas supporter suffisamment les montées en charge
sur les machines SMP, en particulier sur les machines à  plus de quatre CPU. Cette
limitate signifie que, pour les applications d’entreprise comme les serveurs de
bases de données, le Web ou la messagerie, on constate une diminution des performances
relatives à  mesure que l’on ajoute des CPU à  un système. Les benchmarks effectués
par Windows NT magazine et d’autres sources montrent que la chute des performances
relatives par processeur est considérable lorsque les CPU passent de quatre à 
huit.

Autre aspect de l’évolutivité, les applications doivent avoir de bonnes performances
avec de gros volumes, par exemple de grandes bases de données. Pour que de grandes
entreprises acceptent un OS, celui-ci doit d’abord exploiter efficacement les
multiprocesseurs et la mémoire. C’est pour cette raison que l’amélioration de
l’évolutivité de NT est, depuis quelque temps, un problème majeur pour Microsoft.
L’évolutivité est une équation complexe, car elle dépend non seulement de l’aptitude
à  monter en charge du système d’exploitation, mais également des applications.
Un système d’exploitation a beau être extrêmement évolutif, s’il n’offre pas les
interfaces appropriées à  ses applications, ce sont ces dernières qui risquent
de ne pas pouvoir évoluer.

Windows 2000 traite l’évolutivité de plusieurs manières. Premièrement, il offre
aux applications gourmandes en mémoire le moyen d’utiliser des quantités de mémoire
virtuelle et physique supérieures à  celles qu’offre NT 4.0. Comment une augmentation
de la mémoire peut-elle contribuer à  l’évolutivité d’une application ? La plupart
des applications doivent traiter rapidement de grandes quantités de données pour
bien fonctionner.

Par exemple, pour être évolutif un serveur de base de données doit pouvoir traiter
de gros volumes. Comme les disques sont lents comparativement au processus d’accès
à  la mémoire principale, un serveur fonctionne mieux si les données auxquelles
il doit accéder pour une requête de base de données sont localisées, ou mises
en cache dans la mémoire physique. NT (tout comme Windows 2000) est un système
d’exploitation 32 bits qui divise ses 4 Go de mémoire virtuelle, adressables en
32 bits, en deux moitiés : la moitié inférieure est affectée aux applications,
la moitié supérieure héberge le code des drivers de périphériques et les données.

Ainsi NT 4.0 restreint effectivement une application à  gérer au plus 2 Go de données
(3 Go avec le commutateur boot.ini /3GB de Windows NT Server Enterprise Edition).
Une amélioration de Windows 2000 permet à  une application de gérer beaucoup plus
de données : il s’agit d’AWE (Address Windowing Extensions, désigné dans certaines
documentations marketing de Microsoft comme Advanced Windowing Extensions).

AWE se compose de quatre API utilisées par les applications pour attribuer ou
retirer la mémoire physique et pour obtenir des renvois, ou fenêtres, de
leur espace d’adresses à  des parties de mémoire physique.

Par exemple, dans un système avec 4 Go de mémoire physique, une application de
base de données peut très bien affecter la majorité de la mémoire à  son cache.
Elle crée alors des fenêtres pour les parties du cache auxquelles elle doit accéder
lorsqu’elle traite les requêtes adressées à  la base de données. A la fin d’une
requête, l’application ferme les fenêtres créées. La Figure 1 montre un exemple
d’application ayant une allocation de mémoire physique et ayant défini une fenêtre
vers une partie de la mémoire physique.

Les API AWE devraient, selon les projets de Microsoft, être mises à  la
disposition de toutes les versions de Windows 2000

Intel vient de sortir des processeurs x386 et des cartes mères supportant les
PAE (Physical Memory Extensions), mécanisme qui permet aux systèmes d’exploitation
et aux applications d’accéder à  plus de 32 bits de mémoire physique (c’est-à -dire
4 Go), même si les processeurs continuent à  utiliser l’adressage virtuel 32 bits.
PAE utilise l’adressage physique 36 bits pour supporter jusqu’à  64 Go de mémoire
physique.
Une application utilisant les API AWE peut donc créer des mémoires caches de données
atteignant des tailles près de 16 fois supérieures à  celles de NT 4.0. Au moment
de la mise sous presse, les API AWE devraient, selon les projets de Microsoft,
être mises à  la disposition de toutes les versions de Windows 2000 (c’est-à -dire
Windows 2000 Professional, Server, Advanced Server et Datacenter).

Toutefois Windows 2000 Pro et Windows 2000 Server ne supporteront que 4 Go de
mémoire physique. Windows 2000 AS 8 Go et Data Center jusqu’à  64 Go.

D’autres améliorations de l’évolutivité de Windows 2000 portent sur les performances
des multiprocesseurs. Un nouvel objet du kernel, baptisé Job, comprend un ou plusieurs
process spécifiés par une application ou un administrateur. Il s’agit d’un conteneur
de process avec des caractéristiques qui peuvent être manipulées par ses API.
Ces API permettent, en effet, à  un programme d’administration de limiter le temps
de CPU que le Job peut consommer avant de s’achever, d’affecter des process du
Job à  telle ou telle CPU particulières d’une machine SMP, ou de contrôler la priorité
de l’ordonnancement des process du Job. Microsoft a développé l’objet Job en vue
du traitement séquentiel. Dans le traitement séquentiel, les process qui durent
longtemps effectuent un certain nombre de calculs ou de traitement sur les données.
Le Datamining est un exemple de calcul qui pourrait bien convenir aux objets Job.
Un objet Job n’améliore pas nécessairement l’évolutivité du calcul qu’il englobe,
mais peut améliorer les performances du reste du système. Etant capables d’attribuer
le temps de CPU, l’ordonnancement, les tailles des working sets, les limites de
la mémoire dédiée, et d’autres restrictions, aux process contenus par l’objet,
les objets Job peuvent minimiser l’impact des calculs sur les applications importantes
ou à  durée critique tournant sur un système.

Une autre amélioration de l’évolutivité de Windows 2000 par rapport à  NT 4.0 concerne
la durée d’exécution des threads sur une CPU autorisée par le système d’exploitation,
avant que l’ordonnanceur ne puisse en ordonnancer un autre. Microsoft baptise
ces durées des quantums, qui, dans NT 4.0, sont d’ailleurs plus courts
dans NT Workstation que dans NT Server. Il est préférable d’avoir des quantums
plus courts sur les systèmes exécutant plusieurs applications interactives et
des quantums plus longs sur ceux qui veulent favoriser les performances d’une
ou deux applications non interactives. Sur les systèmes Windows 2000, les administrateurs
systèmes peuvent configurer des quantums courts ou longs, tant dans Windows 2000
Pro que dans Windows 2000 AS ou Data Center. Cette souplesse leur permet de décider
des durées préférables en fonction des charges de travail réelles des applications
utilisées.

Pour augmenter l’évolutivité de Windows 2000, Microsoft a significativement
relevé les limites de plusieurs composants système

Microsoft a également tuné le noyau de Windows 2000 pour améliorer les performances
en SMP. Les systèmes d’exploitation doivent utiliser des spinlocks (verrous
rotatifs) pour ne permettre qu’à  une CPU à  la fois d’accéder aux structures essentielles
des données.

Par exemple, Windows 2000 se sert de la base de données de l’ordonnanceur pour
faire le suivi des threads qui sont autorisés à  s’exécuter ; si deux CPU modifient
la base de données simultanément, celle-ci risque de s’altérer. Le noyau de Windows
2000 utilise une dizaine de verrous pour protéger les structures de données globales
telles que la base de données de l’ordonnanceur. Il s’agit de verrous avancés
appelés queued spinlocks, plus performants sur des SMP que les spinlocks
standards utilisés par NT 4.0, en particulier lorsque des CPU sont ajoutées à 
un système. Pour augmenter l’évolutivité de Windows 2000, Microsoft a significativement
relevé les limites de plusieurs composants système.

Par exemple, le non paged pool (c’est-à -dire la quantité maximale de mémoire du
noyau verrouillée disponible) double de taille, passant de 128 Mo à  256 Mo. Le
Paged pool (c’est-à -dire la mémoire paginable du noyau) augmente aussi, passant
de 192 Mo maximum à  près de 470 Mo. La quantité maximale de mémoire physique que
le noyau peut mapper pour le compte des drivers de périphériques augmente de 192
Mo à  près de 640 Mo. La taille virtuelle maximale de la mémoire cache du système
de fichiers augmente, elle aussi, passant de 512 Mo à  près de 1 Go. Malheureusement,
la limite de l’espace d’adresses virtuel du chip Intel ne permettra pas à  Microsoft
d’appliquer toutes ces tailles maximales de composants à  un seul système.

Cependant, les pools de mémoire du noyau, plus nombreux, de Windows 2000 permettent
à  l’OS de supporter des charges de travail et des data sets plus importants que
NT 4.0.

En outre, grâce à  une mémoire cache virtuelle plus importante, le Gestionnaire
de cache de Windows 2000 améliore ses performances pour la gestion des fichiers
mis en antémémoire.

Enfin, Microsoft a peaufiné certains sous-systèmes spécifiques du noyau, comme
le Gestionnaire de la mémoire, pour assurer de meilleures performances aux applications
sur les machines SMP.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par iTPro.fr - Publié le 24 juin 2010