Passer au contenu

Windows fait tout à la fois !

Comment fait Windows pour que plusieurs logiciels fonctionnent en même temps ? Y a-t-il un rapport avec le type de processeur qui équipe le PC ? Pour y voir clair, nous avons interrogé Windows XP.

Windows XP, bonjour. Avec la possibilité que vous offrez d’utiliser plusieurs logiciels simultanément et tous ces petits programmes que vous faites ‘ tourner ‘ en arrière-plan, vous semblez
particulièrement doué pour faire plusieurs choses en même temps. Est-ce vraiment le cas ?
En réalité, non : je suis simplement incroyablement rapide. Vous savez, mon travail se mesure en millièmes de secondes, voire en millionièmes. Ainsi, quand vous pensez que je fais deux choses à la fois, que deux programmes
travaillent simultanément, je ne fais, en réalité, que faire travailler le moteur de votre PC (le processeur) de façon séquentielle : une opération après l’autre, un programme après l’autre. C’est en allant très vite que je
parviens à donner l’impression de simultanéité.C’est donc ça, votre secret ? Il suffit d’être rapide ?Non, la rapidité ne fait pas tout. Pour être réellement multitâche, il faut aussi être très bien organisé. En tant que système d’exploitation, je ne me contente pas de faire tourner vos logiciels. Je dois
également, en permanence, faire fonctionner beaucoup de programmes qui sont ‘ invisibles ‘ pour vous : celui chargé de réagir à la frappe d’une touche sur le clavier, celui qui surveille le
déplacement ou le clic de la souris, celui qui gère correctement l’affichage sur votre écran, etc. Et je suis contraint de faire tout cela en même temps, sans pourtant m’emmêler.Vous vous dites bien organisé, mais vous avez pourtant mauvaise réputation. On vous connaît beaucoup de cafouillages…Vous voulez parler de ces bogues dans certains logiciels ou programmes qui provoquent un blocage ou un plantage du PC ? Vous devez confondre avec mes anciennes versions.


Pour comprendre mon évolution, il faut déjà savoir que, techniquement, chaque programme se découpe en petites opérations, que l’on appelle des threads ou des processus. Ce sont ceux-là que le processeur du PC va
traiter les uns après les autres. Avant l’apparition de mon aïeul Windows 95, quand plusieurs logiciels fonctionnaient ‘ en même temps ‘, chaque processus devait explicitement redonner la main pour
laisser le processeur travailler sur le processus suivant. Si un processus oubliait de le faire, ou bien s’il était bogué, cela pouvait provoquer le gel ou l’arrêt complet du système. Cette technique de passage de relais volontaire s’appelle le
multitâche coopératif. Un bien mauvais souvenir…Windows a donc abandonné le multitâche coopératif ? Une autre technique a été adoptée ?Windows 95, le premier de mes ancêtres ‘ modernes ‘, a introduit le multitâche dit préemptif. Avec cette technique, il y a une hiérarchie de priorités internes entre les différents
processus. Certains processus, par exemple ceux chargés de gérer les erreurs critiques, se voient affecter la plus haute priorité. Ils sont donc exécutés de préférence à d’autres, classés en faible priorité, les programmes tournant en tâche de fond,
par exemple. Tout continue à se faire de façon séquentielle, les processus de tous les programmes étant traités les uns après les autres, en boucle, des millions de fois par seconde. Mais un processus n’a plus à laisser tout seul la main : je
me charge moi-même de passer d’un processus à l’autre. Fini les gels complets du système lorsqu’un programme plante. Windows 95 a vraiment été une révolution dans ma famille.Et depuis ? Rien de neuf depuis Windows 95 ? Ne me dites pas que vous, Windows XP, utilisez une technique vieille de dix ans…Comme vous y allez ! Alors que mon ancêtre était multitâche, je suis quant à moi multithread. Pour simplifier, c’est ce qui me permet de tirer pleinement parti de plusieurs processeurs en même temps.Le multithread, c’est donc un multitâche amélioré ? Comment cela fonctionne-t-il ?En 2002, Intel a introduit une nouvelle technologie pour ses processeurs : l’HyperThreading. Il s’agissait d’installer, au sein d’un même processeur, deux processeurs ‘ virtuels ‘,
ou processeurs logiques. L’idée est de permettre le traitement réellement simultané de plusieurs processus de façon indépendante. Ce qui permet d’augmenter la vitesse d’exécution des programmes de façon bien plus sensible que par la simple
augmentation de la fréquence des processeurs.


Si les logiciels sont écrits pour gérer correctement le multithreading, ils savent se découper en sous-ensembles de processus qui ne sont pas dépendants les uns des autres. Par exemple, si vous utilisez un logiciel pour récupérer des
données sur Internet, pendant qu’un processus s’occupe de gérer le téléchargement réel du fichier, d’autres processus s’occupent d’afficher la progression de l’opération, de gérer l’interface graphique du programme, vos éventuelles demandes
d’interruption du téléchargement, etc. Si vous faites autre chose pendant ce temps, le processus de téléchargement ne sera pas ralenti pour autant.Cette technique du multithread semble très intéressante. Elle fonctionne tout le temps ?Il faut bien évidemment que les logiciels aient été conçus pour utiliser cette technique. Ce n’est pas le cas de tous, loin s’en faut. Heureusement, moi-même, Windows XP, je suis compatible multithread. Cela améliore grandement mon
fonctionnement, ma fluidité.Et les processeurs à double c?”ur dans tout ça ? Ils vous aident à traiter plusieurs programmes en même temps, c’est ça ?Tout à fait ! Les processeurs à double c?”ur, dans lesquels on retrouve deux vrais processeurs sur la même puce ?” et non deux processeurs logiques comme avec l’HyperThreading ?” permettent d’aller bien plus loin
encore dans le traitement simultané des processus. Comme moi, je suis multithread, je suis capable de décider qu’un processus sera géré intégralement par un processeur ?” réel ou logique ?”, tandis que les autres processus seront traités
par le processeur restant.


En gros, cela me permet de réellement faire fonctionner deux programmes en même temps, chacun d’entre eux gérés par un processeur différent. Il n’y a donc pas de problème pour, par exemple, surfer sur Internet tout en convertissant une
vidéo DV en DivX : chaque programme aura pour moteur son propre processeur.


Et même avec beaucoup plus de deux programmes tournant en même temps, je garantis que si un programme demande beaucoup de travail, beaucoup de puissance de calcul, cela n’entravera pas le bon fonctionnement de l’ensemble.Mais alors, on peut aller encore plus loin, en combinant processeur à double c?”ur et technologie HyperThreading ?C’est exactement ce qu’a choisi de faire Intel… On se retrouve donc pour certains processeurs avec, sur la même puce, deux processeurs contenant chacun deux processeurs logiques ! Et là, je dois avouer que c’est un peu
trop pour moi. Du coup, de nombreux tests prouvent que l’accumulation des deux technologies aboutit pour certains programmes… à un ralentissement ! Mais les technologies s’améliorent, tant matérielles que logicielles. Mon successeur,
Windows Vista, sera, encore mieux que moi, capable de gérer plusieurs processeurs en même temps. Un avantage qui lui sera bien utile puisque la multiplication des c?”urs est à l’ordre du jour : les fondeurs ont déjà prévu des processeurs à
quatre c?”urs ! Mais ceci est une autre histoire…

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Stéphane Viossat