Comparaison
Le multitâche préemptif est plus robuste que le multitâche coopératif : une tâche ne peut bloquer l’ensemble du système. Le système d’exploitation peut aussi utiliser plus efficacement les ressources disponibles, par exemple si des données sont disponibles via un périphérique d’entrée, le processus devant traiter ces données peut être immédiatement activé.
De plus, une tâche en attente de données ne consommera pas de temps processeur avant que ses données ne soient réellement disponibles.
Bien que, au départ, le multitâche ait été conçu pour permettre à plusieurs utilisateurs d’utiliser le même ordinateur, il est apparu très rapidement qu’il était très pratique même pour un seul utilisateur. Utiliser son traitement de texte favori tout en butinant sur le Web est de nos jours une caractéristique incontournable.
Une autre utilité du multitâche provient du fait qu’il est plus facile de concevoir et d’écrire plusieurs programmes simples, plutôt qu’un seul programme capable de tout faire, puis de les faire coopérer pour effectuer les tâches nécessaires.
Les algorithmes implémentant le multitâche ont été raffinés au cours du temps. Les systèmes modernes peuvent gérer des processus avec des priorités différentes ainsi que des ordinateurs comportant de un à quelques centaines de processeurs.
La technologie des processus légers en anglais : threads a été permise grâce à la présence de gestionnaires de mémoire évolués. Les processus légers partagent toute ou partie de la mémoire d’un processus existant. Ce partage permet, entre autres, une commutation de contexte plus rapide et un partage de données plus efficace entre les processus légers. En contrepartie, de tels programmes peuvent être plus complexes et peuvent se montrer difficiles à mettre au point.
Une autre innovation clé a été l’introduction des niveaux de privilèges : les processus possédant un niveau de privilège bas ne peuvent pas effectuer certaines opérations, par exemple écrire sur des portions de mémoire vitales pour la sécurité du système.
Si un tel processus effectue une opération interdite, le programme est interrompu et un programme superviseur (souvent le système d’exploitation) préempte le processus en cours, puis l’arrête définitivement. Cette technique permet de créer des machines virtuelles où le système « réel » émule le fonctionnement d’une ou plusieurs machines virtuelles, par exemple afin d’accroître la sécurité (une machine virtuelle ne peut pas interférer avec une autre machine virtuelle).
Partager