Utilisateur:JonathanIlias/Multitâche

Une page de Wikipédia, l'encyclopédie libre.

En informatique, un système d'exploitation est qualifié de multitâche s'il permet d'exécuter plusieurs [[tâche (informatique)[tâches]] (on parle aussi de processus sur un même microprocesseur.

En effet, un microprocesseur ne sait, basiquement, exécuter qu'une séquence d'instructions (ce n'est pas tout à fait vrai, mais évitons de se perdre dans des détails). Il est donc fondamentalement monotâche. De ce point de vue, pour faire un système multitâches, il faudrait donc autant de microprocesseurs que de tâches. Or cela manque de souplesse (impossibilité d'augmenter le nombre de microprocesseurs en cours d'exécution, ou de le diminuer pour faire des économies).

C'est pourquoi les systèmes d'exploitation multitâches (logiciel) permettent de partager un microprocesseur entre plusieurs tâches et à travers le temps (puisqu'une seule tâche à la fois peut être exécutée sur le microprocesseur).

Il existe de nombreuses façons de partager le microprocesseur, mais l'expérience dans ce domaine a déjà permi de poser certains concepts et techniques :

De plus, le fait de partager les mêmes ressources (microprocesseur mais aussi la mémoire, les périphériques, ...) entre plusieurs tâches amène souvent à :

  • les protéger les unes des autres : protection de la mémoire
  • leur donner plus de mémoire, car la consommation globale de celle-ci est augmentée par le nombre de tâches : mémoire virtuelle
  • leur permettre de communiquer entre elles, puisqu'elles sont virtuellement des entité séparées
  • leur permettre de se synchroniser, puisqu'elle ne travaillent pas toutes au même rythme

Le fonctionnement du multitâche[modifier | modifier le code]

La commutation de contexte[modifier | modifier le code]

résumé de l'article commutation de contexte

Préemption ou coopération[modifier | modifier le code]

que faire de multitâche préemptif ? supprimer ou créer un multitâche coopératif

Les états d'une tâche[modifier | modifier le code]

Plus que de recopier un schéma donné de tel ou tel OS, expliquer les principaux états :

  • en exécution : la tâche dispose actuellement du processeur
  • éligible : la tâche est virtuellement en exécution mais «attend» que le processeur lui soit attribué
  • en attente : la tâche n'est volontairement pas éligible par l'ordonnanceur car elle attend quelque chose (synchronisation)

Ordonnancement[modifier | modifier le code]

Présenter le rôle de l'ordonnanceur et présenter quelques algorithmes d'ordonnancement

il n'existe pas d'article sur le sujet ?

Les outils du multitâche[modifier | modifier le code]

Synchronisation[modifier | modifier le code]

Sémaphores, événements, signaux, ...

Communication[modifier | modifier le code]

Boîtes aux lettres, tubes, sockets, ...

Protection mémoire[modifier | modifier le code]

Mémoire virtuelle[modifier | modifier le code]

Domaines d'application[modifier | modifier le code]

Informatique d'exploitation[modifier | modifier le code]

À compléter : cela concerne l'informatique directement «orientée utilisateur» : bureautique, développement, ...

Temps-réel et embarqué[modifier | modifier le code]

À compléter : Systèmes à contraintes temporelles et/ou à contrainte matérielles

Traitements lourds[modifier | modifier le code]

À compléter : gros traitements d'informations (calculateurs, ...)