RECHERCHE :
Bienvenue sur le site de Michel VOLLE
Powered by picosearch  


Vous êtes libre de copier, distribuer et/ou modifier les documents de ce site, à la seule condition de citer la source.
 GNU Free Documentation License.

Commentaire sur :

Laurent Bloch, Les systèmes d'exploitation des ordinateurs, Vuibert 2003

23 avril 2003

Nous avons pris une habitude barbare : vivre au milieu d'objets techniques dont on ignore tout. Beaucoup de gens ignorent comment marchent automobile, télévision, réfrigérateur, téléphone etc. Cela ne les empêche pas de s'en servir. Cette ignorance a des inconvénients. L'expertise étant le monopole des experts, ils peuvent en abuser : alors un fossé de méfiance se crée, des fantasmes naissent. Savons-nous si le téléphone mobile est mauvais pour la santé ? si les antennes sont dangereuses pour les habitants des immeubles où elles sont perchées ? Non, sans doute ; notre ignorance va si loin que nous sommes incapables de lire les rapports d'expertise. Cela ne calme pas nos émotions.

Parmi ceux qui préfèrent Linux à Windows, ou l'inverse, quelques-uns savent pourquoi mais pour la plupart c'est une affaire de mode. La mode, l'émotion, font de nous des moutons de Panurge. Ne devrions-nous pas plutôt étudier les objets familiers qui nous entourent, avoir avec eux un rapport raisonnable, sinon rationnel ?

*
*  *
Pour savoir comment marche notre ordinateur, il faut avoir compris ce que fait son système d'exploitation (SE). Il est vrai que les livres sur le sujet sont arides. Laurent Bloch comble une lacune et satisfait notre curiosité.

Que savons-nous du SE ? qu'il affiche les fenêtres que nous voyons à l'écran et qu'il gère le répertoire des fichiers (ceux qui ont utilisé MS-DOS se rappellent les instructions qui permettaient de les créer, déplacer, détruire, concaténer etc.) Nous savons en outre que les SE des mainframes sont dotés de fonctions plus riches que celles-là, mais que nous ignorons. Ici s'arrête d'habitude notre science. En effet, la seule partie du SE qui soit visible par l'utilisateur est l'interface homme-machine et le répertoire des fichiers.

Laurent Bloch nous permet d'aller plus loin. Le SE vise à faciliter l'utilisation de l'ordinateur ; il exécute pour notre confort, et sans que nous ne lui demandions rien, nombre de tâches essentielles et discrètes. Lors de l'exécution d'un programme, il reçoit les instructions que fournit le compilateur. Ces instructions sont écrites sous la forme d'une suite de 0 et de 1 qui représentent des commandes et des adresses. Le SE déclenche l'exécution d'autres programmes pour gérer les processus en cours, les équipements périphériques et la mémoire. Son "noyau" ("kernel") regroupe tous les programmes qui interagissent avec les éléments matériels de l'ordinateur.

Notre ordinateur obéit à l'architecture de von Neumann (1945) : un processeur, comportant l'unité de commande, l'unité arithmétique, l'unité d'entrée sortie et des registres, puise dans la mémoire les instructions et les données ; il consulte ces dernières, les traite, charge dans la mémoire le résultat des traitements.

Je ne retiens ici que les fonctions qui m'ont le plus intéressé parmi celles décrites par Laurent Bloch : l'exécution pseudo-simultanée des programmes et la gestion de la mémoire.

Exécution pseudo-simultanée

Le processeur exécute les instructions de façon séquentielle, l'une après l'autre ; et pourtant, nous utilisons plusieurs applications simultanément (sont ouverts en ce moment sur mon PC FrontPage, Word, Outlook Express, Internet Explorer et Group Mail Pro : eh oui, je suis pour quelque temps encore un des captifs de Microsoft...). Le processeur, qui est très rapide, exécute les programmes de façon pseudo-simultanée : il sait arrêter le programme en cours, gérer les priorités dans la file d'attente des programmes candidats, relancer l'exécution d'un programme antérieurement arrêté.

Considérons une opération simple comme déplacer le curseur en fin de ligne lors de la saisie d'un texte. Si nous utilisons un raccourci clavier, cette action prendra 0,25 secondes et se traduira par environ 20 000 instructions élémentaires. Si notre processeur a une vitesse de 500 MIPS, il peut en 0,25 secondes traiter 124,97 millions d'instructions supplémentaires. 20 000 instructions élémentaires, c'est donc très peu de choses ...

Certains SE "non préemptifs" comme MS-DOS ou les premières versions de Windows ne géraient pas la file d'attente des programmes. Ce soin était laissé aux programmes eux-mêmes. Certains trouvaient cela "cool" : comme c'était "décentralisé", c'était "démocratique". Mais cela provoquait des plantages de plus en plus fréquents, notamment si le PC travaille en réseau ou qu'il se produit des interruptions asynchrones (provoquées par un élément matériel extérieur au processeur, elles peuvent se produire alors qu'une instruction est en cours de traitement) (p. 52). La démagogie existe aussi en informatique. 

Gestion de la mémoire

Comme le coût de la mémoire est fonction croissante de la vitesse d'accès, le PC utilise plusieurs mémoires dont la taille est d'autant plus petite que la vitesse d'accès est plus élevée (le disque dur, mémoire la plus volumineuse, est aussi la plus lente).

Outre la RAM, où résident les programmes en cours d'exécution, le processeur comporte des mémoires caches très petites (quelques Mo) et très rapides, dont le SE assure la gestion (fort délicate).

La "mémoire virtuelle" est une technique d'écriture des adresses : les adresses virtuelles que comporte le programme ne sont traduites en adresses réelles que lorsque l'on en a besoin. Cela permet d'utiliser un espace d'adressage aussi grand qu'on le souhaite, et de se libérer des contraintes liées à la taille de la mémoire physique. La traduction des adresses virtuelles en adresses réelles est effectuée à la volée par la MMU ("Memory Management Unit"). Les programmes, eux, n'ont à connaître que les adresses virtuelles.

L'appel d'une donnée par un programme doit pouvoir être indifférent à la nature de la mémoire sur laquelle elle réside : c'est au SE qu'il revient d'automatiser les entrées et sorties.