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 :
- le multitâche préemptif et le multitâche coopératif
- l'ordonnanceeur et les algorithmes d'ordonnancement
- la commutation de contexte
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
modifierLa commutation de contexte
modifierrésumé de l'article commutation de contexte
Préemption ou coopération
modifierque faire de multitâche préemptif ? supprimer ou créer un multitâche coopératif
Les états d'une tâche
modifierPlus 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
modifierPré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
modifierSynchronisation
modifierSémaphores, événements, signaux, ...
Communication
modifierBoîtes aux lettres, tubes, sockets, ...
Protection mémoire
modifierMémoire virtuelle
modifierDomaines d'application
modifierInformatique 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, ...)