Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
Catégories
Techniques
Sciences
Encore plus...
Techno-Science.net
Gearbest Page Spécial sur les nouveaux clients, Grande Réduction @GearBest! promotion
Photo Mystérieuse

Que représente
cette image ?
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Multitâche

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 (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de processeurs présents physiquement dans l’ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits...) (un système multiprocesseur n'est pas nécessaire pour exécuter un système d'exploitation multitâche).

Concept

La simultanéité (La notion de simultanéité est intuitive dans un univers, celui de Newton, où le temps est absolu et où temps et espace sont indépendants. Dans l'univers de la relativité restreinte proposé en 1905 par...) apparente est le résultat de l’alternance rapide d’exécution des processus présents en mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.). Le passage de l’exécution d’un processus à un autre est appelé commutation de contexte (Une commutation de contexte (context switch) en informatique consiste à sauvegarder l'état d'un processus ou d'un processus léger et à restaurer l'état d'un autre processus (léger) de façon à ce que des processus...). 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 (Windows (littéralement « Fenêtres » en anglais) est une gamme de systèmes d’exploitation produite par Microsoft, principalement...) jusqu’à Windows (Windows est une gamme de systèmes d'exploitation produite par Microsoft, principalement destinées aux machines compatibles PC. C'est le remplaçant de MS-DOS. Depuis les années 1990, avec la sortie de Windows 95,...) 3.11 ou dans Mac OS (Mac OS (pour Macintosh Operating System) est le nom du système d'exploitation d'Apple pour ses ordinateurs Macintosh. Il est surtout connu pour être le premier système grand public ayant une...) jusqu’à Mac OS 9. Cette approche simplifie l’architecture (L’architecture peut se définir comme l’art de bâtir des édifices.) du système d’exploitation mais présente plusieurs inconvénients :

  • Si un des processus ne redonne pas la main (La main est l’organe préhensile effecteur situé à l’extrémité de l’avant-bras et relié à ce dernier par le...) à 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 (Le mot disque est employé, aussi bien en géométrie que dans la vie courante, pour désigner une forme ronde et régulière, à l'image d'un palet — discus en latin.), etc.) peut être inefficace.
  • Le multitâche coopératif est une forme de couplage fort.

Historique

Le premier ordinateur multitâche dans le monde (Le mot monde peut désigner :) a été conçu par la firme Bull (Bull est une société française spécialisée dans l'informatique professionnelle.) en 1958. Il s’agissait du Gamma 60. Cet ordinateur ne possédait toutefois pas encore de langage de programmation (Un langage de programmation est un langage informatique, permettant à un être humain d'écrire un code source qui sera analysé par une...) (logiciel, software en anglais) à la hauteur (La hauteur a plusieurs significations suivant le domaine abordé.) des performances du système d’exploitation (matériel informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de...), 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é (Le temps partagé est une approche permettant de simuler le partage par plusieurs utilisateurs de temps processeur. Il ne faut pas le confondre avec le terme de multitâche : un système peut être multitâche sans être à temps...). 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 (Le contexte d'un évènement inclut les circonstances et conditions qui l'entourent; le contexte d'un mot, d'une phrase ou d'un texte inclut les mots qui l'entourent. Le concept de contexte issu traditionnellement de l'analyse...) du multitâche. Ces systèmes embarquent en effet un multitâche « hybride », dans certains cas agissant en multitâche préemptif (Le traitement multitâche préemptif est une forme de traitement multitâche. Son but est de partager les temps de calcul des diverses tâches (programmes) à exécuter par le processeur d'un ordinateur.), 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 (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) 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 (En génétique, l'hybride est le croisement de deux individus de deux variétés, sous-espèces (croisement intraspécifique), espèces (croisement interspécifique)...) 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 (Le complètement ou complètement automatique, ou encore par anglicisme complétion ou autocomplétion, est une fonctionnalité informatique permettant à l'utilisateur de...) « 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 (Le genre Passer a été créé par le zoologiste français Mathurin Jacques Brisson (1723-1806) en 1760.) 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 (La virtualisation consiste à faire fonctionner sur un seul ordinateur plusieurs systèmes d'exploitation comme s'ils fonctionnaient sur des ordinateurs distincts. On...) (Win16 on Win32 / WoW) pour effectuer les mêmes opérations.

Source: Wikipédia publiée sous licence CC-BY-SA 3.0. Vous pouvez soumettre une modification à cette définition sur cette page.

La liste des auteurs de cet article est disponible ici.