Multitâche

Un article de Wikipédia, l'encyclopédie libre.
Aller à : Navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Multitâche (homonymie).

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).

Sommaire

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).

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 à la hauteur des performances du système d’exploitation.[réf. nécessaire]

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 machine (pour des questions de rentabilité, le matériel étant extrêmement coûteux).

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.

Multitâche préemptif

Article détaillé : Multitâche préemptif.

Pour remédier à cette situation, les systèmes grand-public ont évolué pour utiliser une approche nommée « multitâche préemptif ».
Dans un tel système, le processeur signale au système d’exploitation que le processus en cours d’exécution doit être mis en pause pour permettre l’exécution d’un autre processus. Le système doit alors sauver l’état du processus en cours (le compteur ordinal, les valeurs des registres) ; le processus est placé dans une file d’attente ; lorsqu’il est en bout de file, son contexte d’exécution est restauré. À la différence du « multitâche coopératif », du point de vue des programmes préemptés, la commutation de contexte est transparente.

Unix (1969) et ses dérivés (BSD en 1977, Linux en 1991, ...) sont des systèmes basés sur le multitâche préemptif.

Sinclair QDOS (1984), AmigaOS (1985), NeXTSTEP (1989) ou BeOS (1991) sont des systèmes multitâches préemptif depuis leur naissance. D’autres systèmes d’exploitation le sont devenus comme Windows (avec Windows NT 3.1 en 1993 pour les professionnels et Windows 95 en 1995 pour le grand public) et MacOS X en 2001.

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'exploitation é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.

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).

Voir aussi

mentions légales Wikipédia
logo wikimediapolitique de confidentialité à propos de Wikipédia avertissements contacts logo wikimediafaire un don

Multitâche . Wikipédia


Un système d'exploitation est multitâche en anglais...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...

www.MultiTache.com . Accueil


Multitâche réalise pour vous tous les travaux pour la rénovation de votre habitat. Cuisine, sanitaires, salle de bains, escalier, carrelage et faience, revetement de sols et murs.

http://www.multitache.fr


MultiTache: Votre partenaire travaux. Vous avez un projet ? Nous concrétisons vos rêves de rénovation de votre habitat. Vous ne savez pas comment le réaliser ni même si vous êtes capable de le mener à...
Plus d'infos Sur le web

  • Un système d'exploitation est multitâche multi-task s’il permet d’exécuter, de façon apparemment simultanée, plusieurs programmes ...
    11 Kio (1 225 mots) - 16 mai 2012 à 19:37

  • En informatique , la préemption est la capacité d'un système d'exploitation multitâche à exécuter ou stopper une tâche planifiée en cours ...
    5 Kio (550 mots) - 23 novembre 2011 à 15:40

  • Le mot multitâche aurait été utilisé pour la première fois dans les sections “compétences” des curriculum vitae des employés de bureau, ...
    20 Kio (2 821 mots) - 24 mai 2012 à 17:26

  • Multitâche peut désigner : en informatique, multitâche : système d'exploitation qui exécute, de façon apparemment simultanée, plusieurs ...
    548 o (49 mots) - 1 mai 2012 à 15:24

  • Unix, officiellement UNIX (parfois écrit « Unix », avec des petites capitales), est un système d'exploitation multitâche et multi- ...
    27 Kio (3 412 mots) - 15 mai 2012 à 16:03

  • Windows XP est une famille de systèmes d'exploitation multitâche s propriétaires , développée par Microsoft , permettant l'usage d'un ...
    35 Kio (4 406 mots) - 15 mai 2012 à 10:25

  • Windows NT (« New technology » ou « nouvelle technologie ») désigne la série de systèmes d'exploitation multitâche préemptif , multi- ...
    6 Kio (562 mots) - 5 avril 2012 à 12:11

  • est le précurseur du multi-tâche des systèmes d'exploitation ... Quelques exemples: scope col | Multitâche Multi-utilisateur ! scope col | ...
    77 Kio (9 268 mots) - 25 mai 2012 à 09:57

  • VxWorks est un système d'exploitation temps réel multitâche , généralement utilisé dans les systèmes embarqués. Ce système d'exploitation ...
    3 Kio (282 mots) - 23 janvier 2012 à 15:45

  • Contiki est un système d'exploitation libre , léger, multitâche , hautement portable, développé pour des appareils possédant peu de ...
    956 o (80 mots) - 25 mai 2012 à 16:12

  • iRMX est un système d'exploitation multitâche temps réel conçu spécialement pour les processeurs Intel de la famille X86 . ...
    548 o (58 mots) - 21 novembre 2011 à 10:54

  • En informatique, la préemption est la capacité d'un système d'exploitation multitâche d'interrompre une tâche en cours en faveur d'une ...
    554 o (60 mots) - 18 décembre 2010 à 13:16

  • MagiC est un système d'exploitation propriétaire multitâche pour ordinateurs Atari ST et compatibles. Il a été porté sur PC et ...
    518 o (52 mots) - 28 juillet 2010 à 06:47

  • en multitâche coopératif, la gestion de mémoire virtuelle , et des pilotes pour gérer l’affichage, l’impression, le clavier, le son, etc. ...
    33 Kio (3 442 mots) - 14 mai 2012 à 20:45

  • Il ne faut pas le confondre avec le terme de multitâche : un système peut être multitâche sans être à temps partagé (par exemple s'il ...
    3 Kio (399 mots) - 27 mai 2011 à 00:01

  • l'état d'un processus pour restaurer à la place celui d'un autre dans le cadre de l'ordonnancement d'un système d'exploitation multitâche . ...
    3 Kio (255 mots) - 23 octobre 2011 à 16:07

  • Toutefois, les fibres utilisent impérativement un multitâche coopératif là où les threads utilisent en général un multitâche préemptif . ...
    5 Kio (565 mots) - 17 septembre 2011 à 17:55

  • Multitâche coopératif (multitâche préemptif pour les programmes n'utilisant pas l'interface graphique), avec une notion de priorité ...
    1 Kio (171 mots) - 31 octobre 2011 à 20:41

  • Pour pallier cet inconvénient majeur, les noyaux multitâche s permettent l’exécution de plusieurs processus sur un processeur, en ...
    45 Kio (5 138 mots) - 5 avril 2012 à 20:20

  • la synchronisation de donnée est un mécanisme qui vise à conserver la cohérence entre différentes données dans un environnement multitâche. ...
    12 Kio (1 574 mots) - 17 mai 2012 à 13:22