Extrait du cours programmation avancée en C++: Les threads
1. Processus
– Chaque application (emacs, word, etc.) exécutée sur un ordinateur lui est associée un processus représentant l’activité de celle-ci.
– À ce processus est associé un ensemble de ressources personnalisées comme l’espace mémoire, le temps CPU etc.
– Ces ressources seront dédiées à l’exécution des instructions du programme associé à l’application.
– Les processus coûtent chers au lancement (l’espace mémoire à calculer, les variables locales au processus à définir etc.).
2. Multitâche
– C’est la possibilité que le système d’exploitation a pour faire fonctionner plusieurs programmes en même temps et cela, sans conflit.
– Par exemple: écouter de la musique et lire son courrier en même temps.
– Un système monoprocesseur (et non pas monoprocessus, ne pas confondre processus et processeur), simule le multitâche en attribuant un temps (un quantum ou temps déterminé à l’avance) de traitement pour chaque processus (description très simpliste du rôle du monoprocesseur).
– Un système multiprocesseur peut exécuter les différents processus sur les différents processeurs du système.
– Généralement, un programme est livré avec un tel système pour permettre de distribuer de manière efficace les processus sur les processeurs de la machine.
– Un programme est dit multitâche s’il est capable de lancer plusieurs parties de son code en même temps.
– À chaque partie du code sera associé un processus (sous-processus) pour permettre l’exécution en parallèle.
– La possibilité de lire l’aide en ligne et d’imprimer à la fois sous word. Ce sont deux sous-processus relevant d’un processus qui est associé à l’application word.
– Un serveur réseau (processus) et le traitement de requêtes (sous-processus associé à chaque requête).
– Nous aimerions que le traitement de ces requêtes soit fait de manière optimale de telle sorte à pouvoir servir toutes les requêtes dans un espace de temps raisonnable.
– Comme chaque processus coûte cher au lancement, sans oublier qu’il va avoir son propre espace mémoire, la commutation (passage d’un processus à un autre) ainsi que la communication inter-processus (échange d’informations) seront lourdes à gérer.
……..
Programmation avancée en C++: Les threads (164 KO) (Cours PDF)