Utilisateur:JonathanIlias/Multitâche

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

La commutation de contexte

modifier

résumé de l'article commutation de contexte

Préemption ou coopération

modifier

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

Les états d'une tâche

modifier

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

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

Synchronisation

modifier

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

Communication

modifier

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

Protection mémoire

modifier

Mémoire virtuelle

modifier

Domaines d'application

modifier

Informatique d'exploitation

modifier

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

Temps-réel et embarqué

modifier

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

Traitements lourds

modifier

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