de s’exécuter concuremment. Pire encore, si sa routine est buggée et se perd dans une boucle infinie, il n’y aura
plus personne pour rendre le processeur à l’Operationg System. Qui s’étonnera encore que votre bouton reset soit
aussi usé ! En cas de multitâche préemptif, un processus actif peut à n’importe quel moment être remplacé par un
process de priorité plus élevée. Pour obtenir cette préemption, un système d’exploitation doit gérer un
“ scheduler ” qui s’active lorsqu’une priorité est modifiée. Dès qu’une tâche à forte priorité est disponible, le
scheduler se charge de retirer le contrôle du CPU à la tâche en cours et le confie à une nouvelle tâche. Le
mauvais comportement d’une tâche n’est plus un problème puisque l’OS est capable de lui retirer le contrôle du
CPU.
Le progrès en matière d’Operating Systems est tel que tous les systèmes d’exploitation 32 bits apparus après
1993 résolvent presque tous les problèmes évoqués plus haut :
- La limite du 1 MB est repoussée théoriquement à 4 GB par l’adressage 32 bits (2 exposant 32)
- Les noms de fichiers sous OS/2 ou NT peuvent aller jusque 255 caractères.
- Dans un véritable multitâche préemptif, les TSR gloutons appartiennent définitivement au passé.
- Les accès aux I/O et périphériques sont virtualisés pour éviter tout conflit.
- L’horrible polling est remplacé par une gestion asynchrone des I/O. Une application réclame le droit d’opérer
une opération I/O et peut déjà faire autre chose pendant que le périphérique termine de transférer les données.
L’OS notifie automatiquement la tâche que l’opération I/O est terminée.
- La limite des partitions disque de 512 MB imposée par le BIOS est repoussée par le recours à des file systems
plus évolués comme le HPFS ou le NTFS incluant structure arborescente accélérant les recherches, restauration
automatique des données après un plantage, notion de sécurité, tolérance de panne, une meilleure stratégie de
gestion des clusters libres, l’utilisation de secteurs au lieu de clusters comme unité d’allocation, la présence
d’attributs de fichier étendus.
- Les OS 32 bits peuvent recourir à d’autres file systems installables pour gérer des CD-ROM ou des WORM par
exemple.
- Les portions non-réentrantes du BIOS sont inutilisées et remplacées par des fonctions 32 bits de l’Operating
System.
-Pour une meilleure protection, l’Operating System tourne en mode kernel (Ring 0) alors que les applications
n’ont accès qu’au User mode (Ring 2 ou 3). Chaque application ou thread dispose de son propre espace mémoire
adressable et n’est pas autorisée à accéder aux adresses virtuelles d’autres processes. Un mécanisme de
protection par page mémoire de 4KB assigne à chaque page virtuelle une série de flags déterminant les types
d’accès autorisés pour ces pages (lecture seulement, lecture-écriture etc).
- Les limites de mémoire sont éliminées par le recours à un espace adressable virtuel théoriquement de 4 GB par
application.
- Le Memory Management Unit (MMU) du processeur permet de dissocier l’adresse réelle en mémoire de celle
vue par l’application. Grâce à un mécanisme baptisé “ address translation ”, le MMU traduit les adresses
virtuelles en adresses physiques au fur et à mesure que les instructions sont exécutées. Quand la mémoire
physique réellement présente est pleine, le VM manager transfère (en anglais “ page ”) certains pans de la
mémoire sur disque. Quand un processus ou un thread veut accéder à une adresse virtuelle “ paginée ” sur un
disque, le VM manager se charge de la rappeler en mémoire.
- Une application peut être découpée en de nombreux threads ( fil en français) disposant chacun de leur propre
niveau de priorité, d’un jeu de registres et d’un stack. Le scheduler de l’OS détermine le thread à la plus forte
priorité et lance ce thread pour une période de temps (appelée timeslice ou quantum) déterminée définie par le
mode de timeslicing. A la fin du timeslice, le scheduler détermine si un autre thread est prêt à prendre le relais.
C’est le mécanisme de context switching.
- Pour permettre l’échange de données et la synchronisation entre tâches ou threads, les OS nouvelle cuvée
disposent de mécanismes de communication interprocess (IPC ou Interprocess Communication) comme la
mémoire partagée, le sémaphore ( une sorte de flag levé et abaissé en début et fin d’une section critique), le
signal (méthode un peu obsolète de notification asynchrone entre process), une queue (une sorte de boîte aux
lettres que peuvent se partager plusieurs threads) ou un pipe (un échange de données entre deux threads).
Je n’ai qu’un conseil à vous donner : abandonner le Dos dans les six mois qui viennent. Je ne me permettrai pas
d’influencer votre choix du système d’exploitation 32 bits qui le remplacera. Que vous choisissiez OS/2, NT,
Linux, Unixware, NextStep, SCO Unix, Solaris m’indiffère. Mon seul propos est de vous faire sortir de l’âge de
la pierre ! En 1994, vous êtes en droit d’exiger un OS prévu pour les processeurs 80386 et suivants, 32 bits, à
multitâche préemptif, supportant le multithreading et offrant la meilleure émulation Dos et Windows possible.