Multitâche - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Un système d'exploitation est multitâche (en anglais : multi-task) s’il permet d’exécuter, de façon apparemment simultanée, plusieurs programmes informatiques. On parle également de multiprogrammation.

Cette fonction est indépendante du nombre de processeurs présents physiquement dans l’ordinateur (un système multiprocesseur n'est pas nécessaire pour exécuter un système d'exploitation multitâche).

Concept

La simultanéité apparente est le résultat de l’alternance rapide d’exécution des processus présents en mémoire. Le passage de l’exécution d’un processus à un autre est appelé commutation de contexte. Ces commutations peuvent être initiées par les programmes eux-mêmes (multitâche coopératif) ou par le système d’exploitation lors d’événements externes (multitâche préemptif).

Multitâche coopératif

Le multitâche coopératif est une forme simple de multitâche où chaque processus doit explicitement permettre à une autre tâche de s’exécuter. Il a été utilisé, par exemple, dans les produits Microsoft Windows jusqu’à Windows 3.11 ou dans Mac OS jusqu’à Mac OS 9. Cette approche simplifie l’architecture du système d’exploitation mais présente plusieurs inconvénients :

  • Si un des processus ne redonne pas la main à un autre processus, par exemple si le processus est bugué, le système entier peut s’arrêter.
  • Le partage des ressources (temps CPU, mémoire, accès disque, etc.) peut être inefficace.
  • Le multitâche coopératif est une forme de couplage fort.

Historique

Le premier ordinateur multitâche dans le monde a été conçu par la firme Bull en 1958. Il s’agissait du Gamma 60. Cet ordinateur ne possédait toutefois pas encore de langage de programmation (logiciel, software en anglais) à la hauteur des performances du système d’exploitation (matériel informatique, hardware en anglais).

Les systèmes multitâches se sont ensuite répandus dans le courant des années 1960 sous le nom de systèmes à temps partagé. Ils permettaient à plusieurs utilisateurs de travailler sur la même (grosse, selon les critères de l’époque) machine.

Cas particuliers

Le cas de Windows 95 (ainsi que de windows 98 et ME) est particulier dans le contexte du multitâche. Ces systèmes embarquent en effet un multitâche « hybride », dans certains cas agissant en multitâche préemptif, dans d'autres, en multitâche coopératif. La conception de ces systèmes d'exploitations était en effet régie par la nécessité de faire fonctionner des programmes conçus pour Windows 3.X (multitâche coopératif) en parallèle avec des exécutables exclusivement conçus pour Windows NT/95 (multitâche préemptif). Les programmes conçus pour un système multitâche coopératif ne pouvant pas fonctionner nativement en mode préemptif (pour des raisons de compatibilité avec les logiciels plus anciens), l'ordonnanceur de Windows a donc été conçu de manière à désactiver le mode préemptif lors de l'exécution de code « coopératif ». De cette manière, tout exécutable / bibliothèque conçu pour Windows 3.1 fonctionne sous Windows 95 en mode coopératif et tout exécutable / bibliothèque conçu exclusivement pour Windows 95 / NT fonctionne en mode préemptif.

Les effets de ce multitâche hybride sont observables lorsque l'on utilise des exécutables / bibliothèques compilés d'un côté pour Windows 3.X (Win16), et d'un autre côté pour Windows 95/NT (Win32). Prenons par exemple le cas d'un exécutable dont le code a été conçu de manière à rester bloqué dans une boucle sans fin. Si la boucle sans fin est placée dans un exécutable Win32 et que le programme est lancé, Windows reste réactif et il est toujours possible d'utiliser d'autres programmes en parallèle (la boucle sans fin est donc préemptée par le système). Si la boucle sans fin est placée dans un exécutable Win16 et que le programme est lancé, Windows reste « figé » ainsi que tous les programmes précédemment lancés, et seule une action ctrl+alt+suppr permettra de « récupérer » le système. Dans ce mode, le système ne préempte plus et attend que le programme rende la main. Plusieurs programmes Win32 font appel à des bibliothèques Win16 lors de leur fonctionnement, rendant leur fonctionnement complètement « hybrides » : préemptifs lors de l'exécution de code Win32 et coopératifs lors de l'exécution de la bibliothèque Win16, le système s'assurant de passer d'un mode à l'autre de manière transparente.

Cette particularité ne s'applique pas à Windows NT/2000/XP qui utilisent un système de virtualisation (Win16 on Win32 / WoW) pour effectuer les mêmes opérations.

Page générée en 0.007 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise